Es geht um iteratoren der STL Containerklassen. Versteh ich das eh so richtig:
begin() -->1. Element end()--> eins nach dem letzten Element rbegin-->das letzte Element rend()-->ein Element vor dem 1. Element
Warum funktioniert dann end()-1 net??? Kann ich um das letzte Element zu bekommen einfach rbegin nehmen? -- Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
weil das Element nach dem letzten nicht existiert. Das heißt das Element hat auch keinen zeiger auf das vorherige Element. -- "Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein www.blue-xenon.de.vuDieser Post wurde am 04.02.2007 um 13:54 Uhr von BoBtheREapER editiert.
Einleuchtend. Nächste Frage. Es gibt ja die Funktion insert nach der form insert(iterator,data)
1) data wird jetzt also nach dem Element wo der iterator hinzeigt angehängt? 2)daher ist ein Aufruf mit end() unmöglich? -- Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
mit end funktioniert das trotzdem wieder nicht weil der iterator ja ungülltig ist -- "Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein www.blue-xenon.de.vu
Klar funktioniert das damit. Du kannst auch --v.end() schreiben und kriegst damit nen forward-iterator auf das letzte Element. v.end() - 1 geht allerdings nur bei random access sequences wie vector, nicht etwa bei list. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra