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 Algorithmen

    Grü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.


  • Administrator

    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++.


Log in to reply