Iterator Wert (zB int) zuweisen
-
Hallo,
wie kann ich einem Iterator einen Wert zuweisen, um zB eine Postion in einem vector zu löschen?
iterator it = 4;ist ja nicht möglich.
Vielen Dank
-
iterator foo = myVector.begin() + 4;
-
std::vector<int>::iterator it = vec.begin() + 4;
edit: mist

-
danke... schon erstaunlich wie schnell ihr seit.. na war ja auch nicht schwer

-
Hallo miteinander,
gibt es eine ähnliche Syntax auch für STL-Listen? Die haben ja nur bidirektionale iteratoren und mit den pointern hab ich es nicht hingekriegt?
typedef list<int> intList; intList iList; for (int i = 0; i < 10; i++) { iList.push_back(i); std::cout << *(--iList.end()) << std::endl; } intList::pointer pList = &iList.front(); std::cout << std::endl << *(pList + 5*sizeof(int)) << std::endl; // std::cout << std::endl << *(iList.begin() + 5) << std::endl;Ich hätte z. B. bei obigem Code als Ausgabe der Zeile 11 eine 5 erwartet. Diese kommt wenn ich anstatt der list in der typedef einen vector verwende und statt den Zeilen 10 und 11, Zeile 13 verwende. So wie der Code im Augenblick steht bekomme ich allerding 3495944 von Zeile 11 geliefert.
Herzlichen Dank schon im Voraus.
Viele Grüße
Knecht
-
Du scheinst dir nicht darüber im klaren zu sein wie eine Liste ihre Daten speichert.
So eine Berechnung geht nur wenn die Daten nacheinenader kommen, wie in einem Vektor, eine Liste speichert die Daten aber nicht aneinanderhängend..
-
Danke für den Hinweis.
Das heißt also, dass man durch Listen nur von vorne oder von hinten durchiterieren kann, oder?
Wo liegen dann die Vorteile von Listen? Oder sollte man diese standardmäßig durch vector(en) ersetzen?
Herzlichen Dank
Viele Grüße
Knecht
-
-
Boah, ist das Ding cool...

Dankeschön

Viele Grüße
Knecht
-
Listen, Set's und Map's haben bewußt keine Random Access Iteratoren (weil die zu langsam wären). Aber wenn dir die Laufzeit egal ist, kannst du
advance(it,n);verwenden, um den Iterator vorwärtszuschieben.(für RAI addiert der einfach den Wert, bei 'niederen' Iteratoren läuft er n Schritte durch die Struktur)