Iterador C ++ e iterador reverso
Estou escrevendo umiterator
(na verdade éconst_iterator
para o meu objeto atual, e também quero criar umreverse_const_iterator
Além disso.
Eu olhei ao redor, para ver como fazer isso e me depareiisto:
Observe, entretanto, que quando um iterador é revertido, a versão invertida não aponta para o mesmo elemento no intervalo, mas para o que o precede. É assim, para organizar o elemento passado de um intervalo: Um iterador apontando para um elemento passado-o-fim em um intervalo, quando invertido, é alterado para apontar para o último elemento (não passado ) do intervalo (este seria o primeiro elemento do intervalo se invertido). E se um iterador para o primeiro elemento em um intervalo for invertido, o iterador invertido apontará para o elemento antes do primeiro elemento (esse seria o elemento passado-fim do intervalo, se invertido).
É isso que acontece da perspectiva do usuário ou quando você faz uma desreferenciareverse_iterator
não abstrai isso, dando-lhe o valor / referência do objeto que vocêpensar está apontando para? Isso é apenas detalhe da implementação?
Meu entendimento foi:
for(i = obj.rbegin(); i != obj.rend(); i++)
era equivalente a
for(i = obj.begin(); i != obj.end(); i++)
exceto ao contrário. E entao*i
iria para trás através do contêiner no primeiro caso, e iria para frente através do contêiner no segundo caso. Meu instinto está correto?