[wxW] Mehrdimensionler ArrayString?



  • Hallo, is es möglich ähnlich wie bei Arrays einen mehrdimensionalen ArrayString anzulegen? Wenn ja wie mache ich das. Falls nein könnt ihr mir eine günstige Alternative empfehlen?

    Danke schonmal!


  • Mod

    wxArrayString ist ein ganz normaler Typ wie jeder andere auch.

    wxArrayString foo[2][100]; sollte also klappen.
    
    // Wenn es dynamisch sein soll, würde ich aber eher auf die STL setzen:
    
    typedef std::vector<wxString> MyArrayString;
    
    std::vector<MyArrayString> bar;
    


  • Genau, das ganze soll dynamisch sein, deswegen war ich mir nicht so sicher. Einfach den vector mit nem wxString zu kombinieren is da natürlich die beste Lösung... Danke!



  • Jetzt häng ich aber doch nochmal... Auch wenn das keine spezielle wxWidgets Frage is:

    Ich will quasi aus verschiedenen "Listen" die Daten aufnehmen. In den Listen steht immer das Objekt und was es ist (Typ). Zum Beispiel:

    Obst: Apfel
    Obst: Birne
    Gemüse: Karotte
    Obst: Banane
    Unkraut: Brennnessel

    Dann sollte das ganze so aufgebaut sein, dass ich daraus dann eine genaue Liste erstellen kann, was es für Typen gibt (z.b. Obst, Gemüse, Unkraut) und dann zum jeweiligen Typ auch alle Elemente (Obst: Apfel, Birne, Banane / Gemüse: Karotte). Ich glaube da ist der Vektor nur bedingt gut geeignet, zumal zum Beispiel Duplikate (sprich 3 mal "Obst") ausgeschlossen werden sollen und das beim Vektor glaub ich nich besonders effektiv geschehen kann?!


  • Mod

    Naja, schau dich halt in der STL um.
    Es gibt weitere Container die dir da helfen können:

    std::set für die "Objekte", in ein Set kannst du nur ein element von jedem hinein tun.

    Für die Tatsächlichen Objekte würde sich eine std::map anbieten:
    std::map<std::string,std::vectorstd::string > foo;


Anmelden zum Antworten