array Frage



  • Hi,
    ich habe mal eine Frage zu arrays. Und zwar habe ich zu einer Funktion folgendes Beispiel gefunden:

    const wxString choices[] = { _T("One"), _T("Two"), _T("Three")} ;
    //wxSingleChoiceDialog(..., const wxString* choices,...);
    wxSingleChoiceDialog(...,choices,...);
    

    Hab das ganze mal aufs wesentliche gekürzt.
    Nun möchte ich anstatt dem Array "choices" ein dynamisches Array verwenden, hab aber keine Ahnung wie ich das machen soll. Geht das vielleicht mit std::vector irgendwie? Hab jetzt schon etliche Stunden rumprobiert, aber nichts hinbekommen.
    Ich hoffe ihr könnt mir helfen.

    Gruß
    Peter



  • http://cplus.kompf.de/artikel/container.html

    std::vector<wxString> a;
    a.push_back("one");
    a.push_back("two");
    // ...
    


  • miller_m schrieb:

    http://cplus.kompf.de/artikel/container.html

    std::vector<wxString> a;
    a.push_back("one");
    a.push_back("two");
    // ...
    

    Ja, soweit bin ich auch noch gekommen, aber wie muss ich diesen Vector der Funktion übergeben? So erhalte ich folgende Fehlermeldung:

    Konvertierung des Parameters 5 von 'std::vector<_Ty>' in 'const wxString *' nicht möglich



  • &myVector[0] gibt die Adresse des erstens Elements an. Bei Vectoren ist garantiert dass sich alle Elemente am Stück im Speicher befinden, allerdings wird der Speicher ungültig wenn der Speicher intern reallokiert wird. Das kann bei Operationen wie push_back (und auch andere bei denen Elemente eingefügt werden) passieren.

    Gruß



  • Vielen Dank für die schnelle Antwort, hat funktioniert 🙂


Anmelden zum Antworten