FRagen zu Iteratoren..
-
Hey,
habe eine std::list und verwende damit iteratoren.sagen wir der inhalt der list ist 1,2,3,4,5
dann zeigt der list.end() iteator auf das element NACH 5 (also ins leer) seh ich das richtig?
Wie kann ich abfragen ob der da hin zeigt?
wenn ich nun den list.end() iterator inkrementiere zeigt er auf das erste Element der List , also die eins richig?
man könnte quasie endlich iterieren, wobei der iterator dann die list immer wieder durchläuft ?
DAnke!
-
BorisDieKlinge schrieb:
wenn ich nun den list.end() iterator inkrementiere zeigt er auf das erste Element der List , also die eins richig?
Falsch. Das ist Undefined Behaviour.
-
@1: Du kannst Iteratoren miteinander vergleichen, also z.B. mit
if(p==l.end())...abfragen, ob du am Listenende angekommen bist.@2: Was passiert, wenn du einen end()-Iterator dereferenzieren oder noch weiter inkrementieren willst, ist undefiniert. Mit etwas Glück schmiert dir nur das Programm ab, aber theoretisch könntest du damit den vierten Weltkrieg auslösen.