Zugriff und Operationen auf einen Zweidimensionalen vector
-
Hallo, ich habe folgendermaßen einen Vector erzeugt:
typedef std::vector<wxString> MyArrayString; std::vector<MyArrayString>* tagVector;Jetzt ist nur die Frage, wie genau ich jetz darauf zugreifen kann

Wie kann ich zum Beispiel dem übergeordneten/ untergeordnetem Vektor Elemente hinzufügen/ löschen/ auslesen?
-
Mmh, naja ganz einfach:
Wenn du ein Element aus dem Vector tagVector anforderst, is das ein Vector vom Typ MyArrayString.
Da es aber hier um wxWindows geht, gleich die Frage, warum nimmst du nicht einen wxStringArray und packs das in einen Vector, wenn du schon multiple Stringlisten brauchst?
Bzw was genau ist denn der Verwendungszweck?
rya.
-
Ganz normal über Index-Zugriff:
//z.B.: (*tagVector)[0].resize(100);//ersten Untervector vergrößern tagVector->push_back(MyArrayString());//Hauptvector vergrößern (*tagVector)[1][2] = "Hallo Welt"; ...
-
Danke erstmal für die Antworten! Den Vorschlag wie ich den Vektor erstellt habe hab ich aus dem wxWidgets Forum. Die Idee statt nen eigenen Typ zu erstellen einfach direkt den Typ wxArrayString einzusetzen is natürlich super
(*an Kopf kratz warum ich nich selber drauf gekommen bin*)So werde ich das mal probieren...
-
winfer schrieb:
Hallo, ich habe folgendermaßen einen Vector erzeugt:
typedef std::vector<wxString> MyArrayString; std::vector<MyArrayString>* tagVector;...
Hi,
dankit erzeugst Du aber keinen vector, sondern einen Zeiger auf einen vector.
Du meinst vermutlich:typedef std::vector<wxString> MyArrayString; std::vector<MyArrayString> tagVector; // ohne *Und nun hast Du einen vector von vectoren von Strings.
Zugriff "wie immer"
// ersten MyArrayString füllen MyArrayString m; m.push_back("Erster String"); m.push_back("2. String"); m.push_back("Dritter Str"); // und jetzt den ersten MyArrayString in tagVector kopieren tagVector.push_back(m); // jetzt mal m verändern m[0] = "winfer"; m[1] = "Simon2"; m.pop_back(); // letztes löschen // und jetzt den nächsten MyArrayString in tagVector kopieren tagVector.push_back(m); // ... fuellen, was das Zeug hält. cout << "1. String des 1. Vectors: " << tagVector[0][0] << "\n";Gruß,
Simon2.