iterator / reverse_iterator
-
Hallo,
Für den iterator benutzt man im normalfall LIST.begin() als anfang, für den reverse_iterator den LIST.rbegin().
Wo liegt nun der unterschied zwischen LIST.end() und LIST.rbegin() ist das nich der gleiche iterator? Oder funktioniert der reverse_iterator anders als ich mir denke?
-
Hi,
der größte Unterschied ist das du beim inkrementieren eines Reverse-Iterators Richtung begin() iterierst und nicht Richtung end()

ist das nich der gleiche iterator?
Nein. end() ist ein Element nach dem letzten, rbegin() das letzte.
Edits: Noch soo früh ...
-
BorisDieKlinge schrieb:
Hallo,
Für den iterator benutzt man im normalfall LIST.begin() als anfang, für den reverse_iterator den LIST.rbegin().
Wo liegt nun der unterschied zwischen LIST.end() und LIST.rbegin() ist das nich der gleiche iterator? Oder funktioniert der reverse_iterator anders als ich mir denke?
nein, das sind 2 unterschiedliche paar schuhe.
zum einen sind die iteratortypen unterschiedlich, einfach weil die iteratormechanik invertiert ist, das heisst ein reverse iterator wird bei "i++" dann dekrementieren.
Zum anderen zeigt List.end() auf einen wert hinter dem letzten Element, also ein ungültiges element das man nicht dereferenzieren darf, während rbegin() ein gültiges element, nämlich das letzte der Liste, beschreibt.