Elemente lesen
Jedes Element eines Vektors hat eine Position, seinen Index. Die Indizes werden von null an gezählt: Das erste Element hat den Index 0, das zweite 1, das dritte 2 und so weiter. Den Index kannst du dir als Anzahl der Schritte vom Anfang des Vektors vorstellen: Das erste Element steht direkt am Anfang, null Schritte entfernt.
std::vector<std::string> vorsaetze = {"Tagebuch schreiben", "Einen Falknerkurs besuchen", "Jonglieren lernen"};Hier hat "Tagebuch schreiben" den Index 0, "Einen Falknerkurs besuchen" den Index 1 und "Jonglieren lernen" den Index 2.
Um ein Element zu bekommen, schreibst du seinen Index in eckigen Klammern hinter den Namen des Vektors:
std::cout << vorsaetze[0] << std::endl;
std::cout << vorsaetze[2] << std::endl;Das gibt aus:
Tagebuch schreiben
Jonglieren lernenEin Element eines Vektors aus Texten ist ein gewöhnlicher std::string-Text. Du kannst es also in einer Variablen speichern und mit einer Beschriftung ausgeben:
std::string ersterVorsatz = vorsaetze[0];
std::cout << "Erster: " << ersterVorsatz << std::endl;Das gibt aus:
Erster: Tagebuch schreibenAchte auf den häufigsten Fehler: Weil die Zählung bei null beginnt, hat das letzte von drei Elementen den Index 2, nicht 3. Bald siehst du, was passiert, wenn du nach einem Index hinter dem Ende eines Vektors fragst.
Einen ganzen Vektor kannst du mit std::cout nicht auf einmal ausgeben. Schreibst du std::cout << vorsaetze << std::endl;, lässt sich das Programm nicht kompilieren:
main.cpp:7:15: error: invalid operands to binary expression ('ostream' (aka 'basic_ostream<char>') and 'std::vector<std::string>' (aka 'std::vector<basic_string<char>>'))Die Meldung sagt, dass der Operator << keine Werte bekommen hat, mit denen er arbeiten kann (seine Operanden): auf der einen Seite die Ausgabe (ostream), auf der anderen einen Vektor. std::cout kann Zahlen, Zeichen und Texte ausgeben, aber keinen Vektor. Unter der Meldung gibt Clang eine lange Liste von Hinweisen (note:) aus, die du überspringen kannst. Gib einen Vektor also Element für Element aus:
std::cout << vorsaetze[0] << ", " << vorsaetze[1] << ", " << vorsaetze[2] << std::endl;Das gibt aus:
Tagebuch schreiben, Einen Falknerkurs besuchen, Jonglieren lernenBei einem langen Vektor wäre das viel Tipparbeit. In der nächsten Lektion lernst du Schleifen kennen, die alle Elemente für dich durchgehen.
So schreibst du es:
Anweisungen
- 1
Gib den ersten Kollegen aus dem Vektor
kollegenin einer eigenen Zeile aus. Die Ausgabe sollte die ZeilePeterenthalten. - 2
Erstelle eine
std::string-Variable mit dem Namenlieblingskollegeund speichere darin einen Kollegen deiner Wahl. Lies ihn über seinen Index aus dem Vektor, zum Beispielkollegen[2]. Gib die Variable dann mit einer Beschriftung aus, etwaFavorit: Lena. - 3
Gib zum Schluss alle drei Kollegen in einer Zeile aus, getrennt durch ein Komma und ein Leerzeichen:
Peter, Adam, Lena.