Iterator Startwert zuweisen ?
-
Hi, ich hab eine Liste, und möchte den Iterator nicht bei 0 beginnen lassen, sondern z.b. 3 , also einem IntegerWert. Nach dem sich der Iterator erhöht hat, möchte ich den Wert wieder als int speichern. Kann mir da jemand bitte helfen? Ich hab mich ein wenig um geschaut, und den Befehl std::advance entdeckt, weiss aber nicht ob das das richtige ist. Danke schonmal. Und was genau macht std::advance?
-
Hallo,
suchst du sowas?
iterator_type iter = list.begin() + 3;
-
Na wenns so einfach geht danke
.. aber ich dachte list.begin() liefert einen iterator zurück? kann man da einfach nen int dazu rechnen?
-
Die Iteratoren versuchen sich wie normale Zeiger "anzufühlen" und haben deshalb den operator+ überladen. Ich bin mir gerade aber nicht sicher ob das alle Iteratoren machen.
-
Konrad schrieb:
Ich bin mir gerade aber nicht sicher ob das alle Iteratoren machen.
Nur Random-Access Iteratoren. Und ein list::iterator gehört nicht dazu

Demnach funktionierts nur mit : advance(it,3);