.begin() liefert keinen iterator aufs erste element zurück
-
Ich wollte mit Iteratoren einen vector durchforsten:
cout<<"Erste Nachricht: "<<player.RealtimeTelegrams[0]->GetMessage()<<endl; vector<Telegram*>::iterator first = player.RealtimeTelegrams.begin(); vector<Telegram*>::iterator second = ++first; vector<Telegram*>::iterator third = ++second;
Eigentlich dachte ich das ich so 3 Iteratoren erstelle, der erste zeigt aufs erste element, der zweite aufs zweite und der dritte aufs dritte.
Nun lasse ich mir aber die erste Nachricht ausgeben und dann die Iteratoren, und stelle fest: der iterator first zeigt aufs zweite Element
Mache ich gerade etwas grundsätzliches falsch? Ist das überhaupt so korrekt?
-
Dir ist nicht klar, dass first durch ++first geändert wird.
-
Was ist denn nur los mit mir
In letzter Zeit mache ich nur solche Fehler ich könnte heulen
-
heul doch
-
Du programmierst noch nicht lange, wie? Und du fängst schon mit STL an?
-
randa schrieb:
Du programmierst noch nicht lange, wie? Und du fängst schon mit STL an?
Wann denn, wenn nicht von Anfang an?
-
einer, der nicht weiß was ++ bedeutet, aoll nicht mit STL anfangen. Hast du schon mal ein gescheites Anfängerbuch gesehen, indem das erste Kapitel "Iteratoren der STL" lautet?
-
randa schrieb:
einer, der nicht weiß was ++ bedeutet, aoll nicht mit STL anfangen. Hast du schon mal ein gescheites Anfängerbuch gesehen, indem das erste Kapitel "Iteratoren der STL" lautet?
Leider nicht. In meinem Anfängerbuch wäre das wahrscheinlich im zweiten Kapitel.
-
randa schrieb:
einer, der nicht weiß was ++ bedeutet, aoll nicht mit STL anfangen. Hast du schon mal ein gescheites Anfängerbuch gesehen, indem das erste Kapitel "Iteratoren der STL" lautet?
Ähem nur weil ich diesen dummen Fehler gemacht habe heißt das nicht das ich ein Anfänger bin. Zwar programmiere ich noch nicht "lange", zähle mich aber zu den Fortgeschrittenen. Leider, wie ich oben erwähnt habe, hab ich schon die ganze Woche eine Phase wo ich andauernd so dumme Fehler machen und nicht drauf komme weil ich ein Brett vor dem Kopf habe.
Deswegen hab ich mich ja so aufgeregt
-
randa schrieb:
einer, der nicht weiß was ++ bedeutet, aoll nicht mit STL anfangen. Hast du schon mal ein gescheites Anfängerbuch gesehen, indem das erste Kapitel "Iteratoren der STL" lautet?
Ich glaub in Accelerated C++ kommen Iteratoren im dritten oder vierten. Halt da, wo die Schleifen eingeführt werden, ohne die bringen Iteratoren ja nicht viel.
-
hier sind ja alle wieder freundlich -.-
jedem passieren doch mal so billige fehler...
oder wer kennt nich dasfor (...) ;
-
k1ro schrieb:
hier sind ja alle wieder freundlich -.-
jedem passieren doch mal so billige fehler...
oder wer kennt nich dasfor (...) ;
sowas passiert nur noobs.
-
Solche Fehler passieren mir eigentlich nie, wenn mir lustige Fehler passieren (besonders, wenn ich müde bin), dann ist das sowas wie das else zu nem if vergessen und im if werden nur existierende Objekte behandelt und im else davor noch eingetragen und ich wundere mich, dann wieso die neu angelegten Objekte nirgends auftauchen
Mein Rekord liegt bei 3 halben Bedingungen, da war ich aber auch wirklich verdammt müde und hab am nächsten Tag erstmal lachen müssen als ich das sah