Classe reverse_iterator
A classe de modelo é um adaptador de iterador que descreve um objeto de iterador inverso que se comporta como um iterador bidirecional ou de acesso aleatório, somente em sentido inverso. Ela permite a travessia regressiva de um intervalo.
template <class RandomIterator>
class reverse_iterator
Parâmetros
- RandomIterator
O tipo que representa o iterador a ser adaptado para operar no sentido inverso.
Comentários
Os contêineres existentes da Biblioteca de Modelo Padrão também definem os tipos reverse_iterator e const_reverse_iterator, bem como possuem funções membro rbegin e rend que retornam iteradores inversos. Esses iteradores apresentam semântica de substituição. O adaptador reverse_iterator complementa essa funcionalidade, pois oferece semântica de inserção e também pode ser usado com fluxos.
Os reverse_iterators que exigem um iterador bidirecional não devem chamar nenhuma das funções membro operator+=, operator+, operator-=, operator- ou operator[], que podem ser usadas apenas com iteradores de acesso aleatório.
Se o intervalo de um iterador for [_First, _Last), em que o colchete à esquerda indica a inclusão em _First e o parêntese à direita indica a inclusão do elemento até _Left, o próprio _Left será excluído. Os mesmos elementos são incluídos na sequência invertida [rev – _First, rev – _Left), de modo que, se _Left for um elemento depois do fim em uma sequência, o primeiro elemento rev – _First na sequência inversa apontará para *(_Left – 1 ). A identidade que relaciona a todos os iteradores inversos a seus iteradores subjacentes é:
&*(reverse_iterator ( i ) ) == &*( i – 1 ).
Na prática, isso significa que na sequência invertida, reverse_iterator fará referência ao elemento que está uma posição depois (à direita do) do elemento ao qual o iterador se referiu na sequência original. Desse modo, se um iterador tratou o elemento 6 na sequência (2, 4, 6, 8), reverse_iterator tratará o elemento 4 na sequência inversa (8, 6, 4, 2).
Construtores
Constrói um reverse_iterator padrão ou um reverse_iterator de um iterador subjacente. |
Typedefs
Um tipo que fornece a diferença entre dois reverse_iterators que se referem a elementos no mesmo contêiner. |
|
Um tipo que fornece um iterador subjacente para um reverse_iterator. |
|
Um tipo que fornece um ponteiro para um elemento tratado por um reverse_iterator. |
|
Um tipo que fornece uma referência a um elemento tratado por um reverse_iterator. |
Funções membro
Recupera o iterador subjacente de seu reverse_iterator. |
Operadores
Retorna o elemento tratado por um reverse_iterator. |
|
Adiciona um deslocamento a um iterador e retorna o novo reverse_iterator que trata o elemento inserido na nova posição de deslocamento. |
|
Incrementa o reverse_iterator até o próximo elemento. |
|
Adiciona um deslocamento especificado de um reverse_iterator. |
|
Subtrai um deslocamento de um reverse_iterator e retorna um reverse_iterator que trata o elemento na posição do deslocamento. |
|
Decrementa o reverse_iterator para o elemento anterior. |
|
Subtrai um deslocamento especificado de um reverse_iterator. |
|
Retorna um ponteiro para o elemento tratado pelo reverse_iterator. |
|
Retorna uma referência a um deslocamento do elemento tratado por um reverse_iterator por um número especificado de posições. |
Requisitos
Cabeçalho: <iterator>
Namespace: std