C ++ итератор и обратный итератор

Я пишуiterator (на самом деле этоconst_iterator для моего текущего объекта, и я хочу также создатьreverse_const_iterator также.

Я оглянулся вокруг, чтобы увидеть, как это сделать, и наткнулся наэто:

Однако обратите внимание, что при обращении итератора обращенная версия указывает не на тот же элемент в диапазоне, а на предыдущий. Это так, чтобы упорядочить элемент «конец конца» в диапазоне: итератор, указывающий на элемент «конец конца» в диапазоне, при обращении изменяется на указатель на последний элемент (а не после него) ) диапазона (это был бы первый элемент диапазона, если обратить вспять). И если итератор первого элемента в диапазоне обращен, обратный итератор указывает на элемент перед первым элементом (это будет элемент конца диапазона в случае обращения).

Это то, что происходит с точки зрения пользователей, или когда вы разыменовываетеreverse_iterator разве это не абстрагирует это, давая вам значение / ссылку на объект, который выдумать это указывает на? Это просто детали реализации?

Мое понимание было:

for(i = obj.rbegin(); i != obj.rend(); i++)

был эквивалентен

for(i = obj.begin(); i != obj.end(); i++)

кроме как в обратном порядке. И так*i будет идти назад через контейнер в первом случае, и идти вперед через контейнер во втором случае. Мой инстинкт верен?

Ответы на вопрос(1)

Ваш ответ на вопрос