Iterator C ++ i iterator odwrotny

Piszęiterator (właściwie tak jestconst_iterator dla mojego bieżącego obiektu i chcę również utworzyćreverse_const_iterator również.

Rozejrzałem się dookoła, aby zobaczyć, jak to zrobić, i natknąłem sięto:

Zauważ jednak, że gdy iterator jest odwrócony, wersja odwrócona nie wskazuje na ten sam element w zakresie, ale na ten, który go poprzedza. Jest tak, aby uporządkować element przeszłości-końca zakresu: iterator wskazujący na element końcowy w zakresie, gdy jest odwrócony, jest zmieniany tak, aby wskazywał ostatni element (nie obok niego) ) zakresu (byłby to pierwszy element zakresu, jeśli jest odwrócony). A jeśli iterator do pierwszego elementu w zakresie jest odwrócony, odwrócona iteracja wskazuje element przed pierwszym elementem (byłby to element końcowy zakresu, jeśli jest odwrócony).

Czy to dzieje się z perspektywy użytkowników, czy kiedy wyłuskujesz areverse_iterator czy to nie odstrasza tego, dając ci wartość / odniesienie do obiektu, którego używaszmyśleć to wskazuje? Czy to tylko szczegół wdrożenia?

Moje zrozumienie było:

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

był równoważny

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

z wyjątkiem w odwrotnej kolejności. A więc*i przejdzie do tyłu przez pojemnik w pierwszym przypadku i przejdzie do przodu przez pojemnik w drugim przypadku. Czy mój instynkt jest prawidłowy?

questionAnswers(1)

yourAnswerToTheQuestion