Problem mit std::vector und iterator
-
Hallo Leute.
Ich weiß einfach nicht wie ich folgednes Problem gefixt bekomme:
[code] struct Beispiel { long nWert[1400]; }; Calculate() { std::vector<Beispiel> vecBeispiel; std::vector<Beispiel> *pVector = NULL; std::vector<Beispiel>::iterator itVector; Beispiel sStruct; vecBeispiel.clear(); pVector = &vecBeispiel; pVector->reserve(1024); itVector = pVector->begin(); for(int a = 0; a < GanzOft; a++) { for(int b = 0; b < GanzViel; b++) { sStruct.nWert[ b ] = b; } pVector->insert(itVector, sStruct); [b]if(itVector != pVector->end()) {itVector++}[/b] } }[/code]
Nun kommt auf die dicke if-Anweisung immer ein Debug Assertion Failure mit: Incomatible Iterator Vector
Und ich find das problem nicht.
EDIT:
zu 1: ? Ich dachte immer WinApi ist C/C++ ?
zu 2: Oh, Sry, hab ich eben geändert (cpp)
zu 3 und 4: Super, danke für die Hilfe./EDIT
-
1. Falsches Forum, dies gehört eher in das C++ Forum.
2. Bitte C/C++ Tags verwenden und nicht die Code Tags.
3. Nach dem std::vector::insert ist der Iterator itVector ungültig. Um dieses Problem zu umgehen, gibt die Funktion einen neuen Iterator zurück:
http://www.cplusplus.com/reference/stl/vector/insert.html
4. Lektüre aus dem Magazin:
http://magazin.c-plusplus.net/artikel/Aufbau der STL - Teil 1%3A Container
http://magazin.c-plusplus.net/artikel/Aufbau der STL - Teil 2%3A Iteratoren und AlgorithmenGrüssli
-
Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum WinAPI in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
1. Man editiert nicht den ersten Post um eine Antwort zu geben oder um weitere Fragen zu stellen, da dies in der Übersicht nicht auffällt.
2.Fiesek schrieb:
zu 1: ? Ich dachte immer WinApi ist C/C++ ?
WinAPI ist die C Schnittstelle für Windows. Die WinAPI ist in C geschrieben, hat aber ansonsten nichts mit C oder C++ zu tun. Dein Problem betrifft aber nur die Sprache C++ und zwar die Standardbibliothek davon.
Für reine C++ Fragen gibt es in diesem Forum eben ein C++ Unterforum. Dahin hat man dich nun auch verschoben.
3.
Fiesek schrieb:
zu 3 und 4: Super, danke für die Hilfe.
Gerngeschehen.
4. Ich bin heute in Aufzählungslaune
Grüssli
-
Fiesek schrieb:
zu 1: ? Ich dachte immer WinApi ist C/C++ ?
WinAPI ist C(/C++), aber C++ ist nicht WinAPI. Also kommen nicht alle C++-Fragen ins WinAPI-Forum, sondern nur die WinAPI-Fragen. Auf der anderen Seite sollten WinAPI-Fragen nicht ins C oder C++-Forum, denn auch wenns C bzw. C++ ist, ist es eben kein Standard C/C++.