DarthShader
Erfahrenes Mitglied
Hallo,
ich verwende ein double ended queue (std::deque), um einige Daten zu speichern. Nun möchte ich eine Art Zeiger auf ein Element haben, welchen ich "hin und herschieben" kann, also inkrementieren und dekrementieren.
Also nahm ich da einen Iterator vom selben Typ wie mein deque, was so aussieht:
indem ich nun im Programm "dqPos++" oder "dqPos--" mache, kann ich meinen "virtuellen Lesekopf" nun bewegen. Dabei liefert mir dann "*dqPos" das Element an der aktuellen Position, auf die dqPos zeigt.
Nun aber zum kleinen Verständnisproblem - wenn mein deque angelegt wird, so mache ich
damit lege ich gleich das erste Element (mit Inhalt 0) an und lasse meinen Iterator darauf zeigen. Und hier die Frage, ist das richtig so? Oder zeigt "dqPos" dann immer auf den End-Iterator des deque's?
Falls das also Humbug ist, wie realisiere ich einen Iterator, den ich beliebig "verschieben" kann (++ oder --) und so immer auf ein Element aus dem deque zeigt?
Vielen Dank für Eure Hilfe
ich verwende ein double ended queue (std::deque), um einige Daten zu speichern. Nun möchte ich eine Art Zeiger auf ein Element haben, welchen ich "hin und herschieben" kann, also inkrementieren und dekrementieren.
Also nahm ich da einen Iterator vom selben Typ wie mein deque, was so aussieht:
Code:
std::deque<bool> dqData; // Double Ended Queue
std::deque<bool>::iterator dqPos; // Iterator, der auf das aktuelle Element zeigt
indem ich nun im Programm "dqPos++" oder "dqPos--" mache, kann ich meinen "virtuellen Lesekopf" nun bewegen. Dabei liefert mir dann "*dqPos" das Element an der aktuellen Position, auf die dqPos zeigt.
Nun aber zum kleinen Verständnisproblem - wenn mein deque angelegt wird, so mache ich
Code:
dqData.push_back(0);
dqPos = dqData.end();
damit lege ich gleich das erste Element (mit Inhalt 0) an und lasse meinen Iterator darauf zeigen. Und hier die Frage, ist das richtig so? Oder zeigt "dqPos" dann immer auf den End-Iterator des deque's?
Falls das also Humbug ist, wie realisiere ich einen Iterator, den ich beliebig "verschieben" kann (++ oder --) und so immer auf ein Element aus dem deque zeigt?
Vielen Dank für Eure Hilfe