Hallo Forum, ich lerne momentan C++ und beschäftige mich gerade mit Vekroren. Doch nun habe ich das Problem das ich die Initialisierung vom Iterator in folgendem Codeblock nicht verstehe:
die Zeile deklariert einen Iterator auf einen vector ganz einfach.
Iteratoren kannst du dir wie intelligente Zeige vorstellen. Du kannst sie erhöhen, verringern und aauch dereferenzieren.
Dein Iterator zeigt noch auf nichts. Du must den erst mit deinem Vector verbinden.
Beispiel:
std::vector meinVector;
std::vector::iterator meinIterator;
// Den Vector mit irgend was befüllen
for (meinIterator = meinVector.begin(); meinIterator != meinVector.end(); meinIterator++)
std::cout
Das gibt zum Beispiel den kompletten Inhalt deines Vectors aus, egal, wie viel drin gespeichert ist.
Wirklich interessant werden Iteratoren vor allem im Zusammenspiel mit den Algorithm. Dann kann man zum Beispiel den Code oben auf folgende Zeile verkürzen:
std::copy(meinVector.begin(),meinVector.end(),std::ostream\_iterator(cout,"\n"));
Da gibts noch einiges mehr, was man damit machen kann. Schau mal in einem guten C++ Buch deiner Wahl nach.
Grüße,
Vielen Dank, hat mir sehr weitergeholfen. Aber was ich immer noch nicht so ganz verstehe, warum wird der Iterator direkt im Vektor, statt in der Instanz vom Vektor initialisiert?
So ein Iterator kann in jedem Vektor des passenden Typs iterieren, so kann man zum Beispiel mit einem Iterator zwei Vektoren durchlaufen. Wenn man im ersten Vektor am Ende angekommen ist, setzt man ihn auf den Anfang des zweiten. Die Dereferenzierung brauch sich dann nicht drum zu kümmern, ob ich noch im ersten Vektor oder schon im zweiten bin.