index von Iterator
-
Hallo,
Wie komme ich an den index-Zähler eines Random Access Iterators?
Danke!
-
Gemeint ist der Indexwert von dem Element worauf der Iterator steht.
-
Hi!
Es gibt mitunter garkeinen Index!
grüße
-
Ich meinte den Wert, auf dem wievielten Element (z.B. des vector) der Iterator steht.
Also bei v->end() würde der gemeinte Wert gleich der Anzahl Elemente des Vektors sein.
Kann man den nicht rausbekommen?
-
Hallo
bei vector kannst du den Anfangs-Iterator vom Index-Iterator abziehen, um den index zu berechnen.
bis bald
akari
-
Ah, danke!
-
Liselotte schrieb:
Ich meinte den Wert, auf dem wievielten Element (z.B. des vector) der Iterator steht.
[...]
Kann man den nicht rausbekommen?Doch sicher. Allerdings benötigst du dazu noch einen zweiten Iterator, am Besten den Begin-Iterator. Hast du diesen, ist der Rest Subtraktion also Mathematik. Einfach: int index = deinIterator - beginIterator
Oder einfacher:
int index = std::distance(beginIterator, deinIterator);
-
Ups. Das war zu langsam

-
vector<int> vec; vec.push_back ... " " vector<int>::iterator it = find(vec.begin(),vec.end(),43); //Natürlich vorher prüfen ob it nicht gleich end() ist cout<<it-vec.begin();Edit: Noch langsamer
