Condividi tramite


Classe reverse_iterator

La classe modello è un adattatore di iteratore che descrive un oggetto iteratore inverso che si comporta come un iteratore ad accesso casuale o bidirezionale solo in senso inverso. Consente l'attraversamento all'indietro di un intervallo.

template <class RandomIterator>
class reverse_iterator

Parametri

  • RandomIterator
    Tipo che rappresenta l'iteratore da adattare perché operi in senso inverso.

Note

I contenitori della libreria di modelli standard definiscono inoltre i tipi reverse_iterator e const_reverse_iterator e dispongono di funzioni membro rbegin e rend che restituiscono iteratori inversi. Tali iteratori dispongono di una semantica di sovrascrittura. L'adattatore reverse_iterator integra questa funzionalità in quanto offre semantica di inserimento e può essere utilizzato anche con i flussi.

Gli reverse_iterator che richiedono un iteratore bidirezionale non devono chiamare alcuna funzione membro operator+=, operator+, operator-=, operator- o operator[] che possono essere utilizzate solo con gli iteratori ad accesso casuale.

Se l'intervallo di un iteratore è [_First, _Last), in cui la parentesi quadra a sinistra indica l'inclusione di _First e la parentesi a destra indica l'inclusione degli elementi fino a _Left escluso. Questi stessi elementi sono inclusi nella sequenza inversa [rev – _First, rev – _Left) in modo tale che se _Left è l'elemento immediatamente successivo all'ultimo elemento di una sequenza, il primo elemento rev – _First della sequenza inversa punti a *(_Left – 1). L'identità che collega tutti gli iteratori inversi ai relativi iteratori sottostanti è:

&*(reverse_iterator ( i ) ) == &*( i – 1 ).

In pratica, questo significa che in tale sequenza inversa reverse_iterator farà riferimento all'elemento immediatamente successivo (a destra) all'elemento a cui ha fatto riferimento l'iteratore nella sequenza originale. Quindi, se un iteratore ha puntato all'elemento 6 della sequenza (2, 4, 6, 8), reverse_iterator punterà all'elemento 4 della sequenza inversa (8, 6, 4, 2).

Costruttori

reverse_iterator

Costruisce un reverse_iterator predefinito o un reverse_iterator da un iteratore sottostante.

Definizioni typedef

difference_type

Tipo che fornisce la differenza tra due reverse_iterator che fanno riferimento agli elementi all'interno dello stesso contenitore.

iterator_type

Tipo che fornisce l'iteratore sottostante per un reverse_iterator.

puntatore

Tipo che fornisce un puntatore a un elemento a cui punta un reverse_iterator.

riferimenti

Tipo che fornisce un riferimento a un elemento a cui punta un reverse_iterator.

Funzioni membro

base

Recupera l'iteratore sottostante dal relativo reverse_iterator.

Operatori

operator*

Restituisce l'elemento a cui punta un reverse_iterator.

operator+

Aggiunge un offset a un iteratore e restituisce il nuovo reverse_iterator che punta all'elemento inserito in corrispondenza della nuova posizione dell'offset.

operator++

Incrementa reverse_iterator all'elemento successivo.

operator+=

Aggiunge un offset specificato da un reverse_iterator.

operator-

Sottrae un offset da un reverse_iterator e restituisce un reverse_iterator che punta all'elemento in corrispondenza della posizione dell'offset.

operator--

Decrementa reverse_iterator all'elemento precedente.

operator-=

Sottrae un offset specificato da un reverse_iterator.

operator->

Restituisce un puntatore all'elemento a cui punta un reverse_iterator.

operator[]

Restituisce un riferimento all'offset di un elemento dall'elemento a cui punta un reverse_iterator di un numero specificato di posizioni.

Requisiti

Intestazione: <iterator>

Spazio dei nomi: std

Vedere anche

Riferimenti

<iterator>

Sicurezza dei thread nella libreria standard C++

Libreria di modelli standard