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
Costruisce un reverse_iterator predefinito o un reverse_iterator da un iteratore sottostante. |
Definizioni typedef
Tipo che fornisce la differenza tra due reverse_iterator che fanno riferimento agli elementi all'interno dello stesso contenitore. |
|
Tipo che fornisce l'iteratore sottostante per un reverse_iterator. |
|
Tipo che fornisce un puntatore a un elemento a cui punta un reverse_iterator. |
|
Tipo che fornisce un riferimento a un elemento a cui punta un reverse_iterator. |
Funzioni membro
Recupera l'iteratore sottostante dal relativo reverse_iterator. |
Operatori
Restituisce l'elemento a cui punta un reverse_iterator. |
|
Aggiunge un offset a un iteratore e restituisce il nuovo reverse_iterator che punta all'elemento inserito in corrispondenza della nuova posizione dell'offset. |
|
Incrementa reverse_iterator all'elemento successivo. |
|
Aggiunge un offset specificato da un reverse_iterator. |
|
Sottrae un offset da un reverse_iterator e restituisce un reverse_iterator che punta all'elemento in corrispondenza della posizione dell'offset. |
|
Decrementa reverse_iterator all'elemento precedente. |
|
Sottrae un offset specificato da un reverse_iterator. |
|
Restituisce un puntatore all'elemento a cui punta un reverse_iterator. |
|
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