Verschachtelte Vektoren
Ein Element eines Vektors kann wieder ein Vektor sein. Ein Vektor in einem Vektor heißt verschachtelter Vektor. Verschachtelte Vektoren sind nützlich für Daten, die Gruppen bilden, zum Beispiel Lerngruppen:
std::vector<std::vector<std::string>> lerngruppen = {{"Lena", "Boris"}, {"David", "Eva", "Nancy"}};Lies den Typ von außen nach innen: lerngruppen ist ein Vektor, dessen Elemente den Typ std::vector<std::string> haben, also Vektoren aus Texten. Deshalb endet der Typ mit zwei spitzen Klammern >> hintereinander: Die erste schließt den inneren std::vector<std::string>, die zweite den äußeren Vektor. Jeder innere Vektor hat seine eigenen geschweiften Klammern, und ein Komma trennt ihn vom nächsten.
Der Vektor lerngruppen hat zwei Elemente, und jedes von ihnen ist eine Gruppe. Einen einzelnen Schüler bekommst du mit zwei Indizes. lerngruppen[1][0] nimmt zuerst das Element am Index 1 (die zweite Gruppe, {"David", "Eva", "Nancy"}) und dann das Element am Index 0 dieses Vektors:
std::cout << lerngruppen[1][0] << std::endl;Das gibt aus:
DavidAlles, was du über Vektoren weißt, gilt auch für die inneren Vektoren. lerngruppen.size() ist 2, die Zahl der Gruppen, während lerngruppen[1].size() gleich 3 ist, die Zahl der Schüler in der zweiten Gruppe. Die inneren Vektoren können also unterschiedlich lang sein. Der Aufruf lerngruppen[0].push_back("Tom") fügt Tom am Ende der ersten Gruppe hinzu:
lerngruppen[0].push_back("Tom");
std::cout << lerngruppen.size() << " " << lerngruppen[0].size() << std::endl;
std::cout << lerngruppen[0][2] << std::endl;Das gibt aus:
2 3
TomAuch einen ganzen inneren Vektor kannst du nicht auf einmal ausgeben: std::cout << lerngruppen[1]; endet mit demselben Fehler wie die Ausgabe eines ganzen Vektors. Gib einzelne Elemente aus.
So schreibst du es:
Anweisungen
- 1
Gib das erste Mitglied des zweiten Teams aus. Verwende zwei Indizes. Die Ausgabe sollte die Zeile
Danielenthalten. - 2
Adam ist dem ersten Team beigetreten. Füge
"Adam"mitpush_back()am Ende des ersten Teams,teams[0], hinzu. - 3
Gib die Anzahl der Mitglieder des ersten Teams und sein letztes Mitglied untereinander aus. Die Ausgabe sollte die Zeilen
Mitglieder: 3undLetzter: Adamenthalten.