vector



  • Hallo. Ich habe mit Vektoren noch nichts zu tun gehabt. Jetzt brauche ich aber so etwas.

    Also:

    ich brauche einen Vektor, wo ich immer CStrings reinschieben kann. Wenn ich dann z.B. auf einen Button drücke soll der zuletzt eingetragene Wert ausgelesen und gelöscht werden.

    Danke für eure Hilfe



  • std::vector<CString>::push_back(str);
    std::vector<CString>::pop_back();



  • der compiler meckert dann immer:

    error C2653: 'std' : Keine Klasse oder Namespace
    


  • #include <vector>



  • jetzt sagt er:

    c:\program files\microsoft visual studio\vc98\include\new(35) : error C2061: Syntaxfehler : Bezeichner 'THIS_FILE'
    c:\program files\microsoft visual studio\vc98\include\new(35) : error C2091: Funktionsergebnis ist eine Funktion
    c:\program files\microsoft visual studio\vc98\include\new(35) : error C2809: Operator 'new' hat keine formalen Parameter
    c:\program files\microsoft visual studio\vc98\include\new(36) : error C2061: Syntaxfehler : Bezeichner 'THIS_FILE'
    c:\program files\microsoft visual studio\vc98\include\new(37) : error C2091: Funktionsergebnis ist eine Funktion
    c:\program files\microsoft visual studio\vc98\include\new(37) : error C2556: 'void *(__cdecl *__cdecl operator new(void))(unsigned int,const struct std::nothrow_t &)' : Überladene Funktion unterscheidet sich nur hinsichtlich des Rückgabetyps von 'vo
    id *(__cdecl *__cdecl operator new(void))(unsigned int)'
            c:\program files\microsoft visual studio\vc98\include\new(35) : Siehe Deklaration von 'new'
    c:\program files\microsoft visual studio\vc98\include\new(41) : error C2061: Syntaxfehler : Bezeichner 'THIS_FILE'
    c:\program files\microsoft visual studio\vc98\include\new(42) : error C2091: Funktionsergebnis ist eine Funktion
    c:\program files\microsoft visual studio\vc98\include\new(42) : error C2556: 'void *(__cdecl *__cdecl operator new(void))(unsigned int,void *)' : Überladene Funktion unterscheidet sich nur hinsichtlich des Rückgabetyps von 'void *(__cdecl *__cdecl o
    perator new(void))(unsigned int)'
            c:\program files\microsoft visual studio\vc98\include\new(35) : Siehe Deklaration von 'new'
    c:\program files\microsoft visual studio\vc98\include\new(42) : error C2809: Operator 'new' hat keine formalen Parameter
    c:\program files\microsoft visual studio\vc98\include\new(42) : error C2065: '_P' : nichtdeklarierter Bezeichner
    c:\program files\microsoft visual studio\vc98\include\memory(16) : error C2061: Syntaxfehler : Bezeichner 'THIS_FILE'
    c:\program files\microsoft visual studio\vc98\include\memory(17) : error C2091: Funktionsergebnis ist eine Funktion
    c:\program files\microsoft visual studio\vc98\include\memory(17) : error C2784: 'void *(__cdecl *__cdecl operator new(void))(unsigned int,class std::allocator<`template-parameter257'> &)' : Vorlagenargument fuer 'void *(__cdecl *)(unsigned int,class
     std::allocator<_Ty> &)' von 'void *(__cdecl *)(unsigned int)' konnte nicht hergeleitet werden
    c:\program files\microsoft visual studio\vc98\include\memory(17) : error C2785: 'void *(__cdecl *__cdecl operator new(void))(unsigned int,class std::allocator<`template-parameter257'> &)' und 'void *(__cdecl *__cdecl operator new(void))(unsigned int
    )' haben verschiedene Rueckgabetypen
            c:\program files\microsoft visual studio\vc98\include\memory(16) : Siehe Deklaration von 'new'
    c:\program files\microsoft visual studio\vc98\include\memory(17) : error C2809: Operator 'new' hat keine formalen Parameter
    c:\program files\microsoft visual studio\vc98\include\memory(20) : error C2954: Vorlagendefinitionen koennen nicht verschachtelt werden
    


  • #include <vector> weiter nach oben, vor #ifdef _DEBUG



  • danke funzt. Kann ich zum einfügen die Methode insert nehmen? es soll immer hinten an gehängt werden oder muss ich die Methoden von delete new T() nehmen?



  • Steht doch oben schon: Anfügen mit push_back, letzten entfernen mit pop_back.



  • und letzten auslesen?



  • back



  • ok funktioniert so weit. danke.

    Das Problem ist jetzt nur, dass er sich immer nur das letzte Element merkt und die davor eingefügten nicht mehr da sind



  • Zeig mal, wie du einfügst.



  • Also so ist es im Moment:

    // Daten in den Vektor eintragen	
        m_vBack.push_back(m_strMLFB);
    
    // letztes Element löschen
        m_vBack.pop_back();
    
        // jetzt letztes Element auslesen
        m_strMLFB = m_vBack.back();
    


  • Und woraus schließt du, dass die davor eingefügten Elemente nicht mehr da sind? Wie verhält sich das Programm, und wie soll es sich verhalten?



  • funktioniert, sorry war ein fehler meinerseits. Vielen Dank


Anmelden zum Antworten