Lektionen des Moduls (1/2)
Arrays und Vektoren
In C++ erfolgt die Verwaltung von Datensammlungen hauptsächlich über zwei Werkzeuge: Arrays im alten Stil (C-Style-Arrays) und Vektoren (std::vector). Das Verständnis des Unterschieds zwischen statischem und dynamischem Speicher ist entscheidend für das Schreiben von effizientem Code.
1. Statische Arrays (C-style Arrays)
Ein Array ist eine Sammlung von Elementen desselben Typs, die an zusammenhängenden Speicheradressen gespeichert sind. Die Größe eines statischen Arrays muss zum Zeitpunkt der Kompilierung bekannt sein und kann später nicht mehr geändert werden:
int grades[5] = {18, 22, 25, 28, 30}; // Array di 5 interi
Hauptmerkmale:
- Feste Größe: Es ist nicht möglich, Elemente zur Laufzeit (runtime) hinzuzufügen oder zu entfernen.
- Zuweisung auf dem Stack: Sie lassen sich sehr schnell zuweisen und freigeben.
- Zugriff: Erfolgt über den Indexoperator
[](z. B.grades[0]für das erste Element).
2. Dynamische Vektoren (std::vector)
Die Standard Template Library (STL) von C++ stellt die Klasse std::vector bereit, die ein dynamisches Array repräsentiert. Um diese zu verwenden, muss der Header <vector> eingebunden werden:
#include <vector>
std::vector<int> numbers; // Crea un vettore vuoto di interi
Häufige Operationen:
- Am Ende hinzufügen: Die Methode
.push_back(valore)fügt ein Element am Ende des Vektors hinzu und belegt bei Bedarf automatisch neuen Speicher. - Größe: Die Methode
.size()gibt die Anzahl der aktuell im Vektor vorhandenen Elemente zurück. - Sicherer Zugriff: Neben dem Operator
[]kann auch die Methode.at(index)verwendet werden (z. B.numbers.at(0)), die eine Ausnahme auslöst, wenn der Index außerhalb der Grenzen liegt.
std::vector<int> scores = {90, 85};
scores.push_back(95); // scores ora contiene {90, 85, 95}
std::cout << scores.size(); // Stampa 3
Probier es aus
Deklariere einen std::vector von Ganzzahlen namens numbers. Füge die Werte 10, 20 und 30 mit der Methode .push_back() hinzu und gib schließlich die Größe mit numbers.size() aus.
Hinweis anzeigen
Deklariere den Vektor mit `std::vector<int> numbers;`, füge die drei Zahlen mit `.push_back(valore)`hinzu und gib das Ergebnis mit`std::cout << numbers.size();` aus.
Lösung nach 3 Versuchen verfügbar
Im main ist ein grades-Array mit 5 Elementen definiert. Schreibe eine for-Schleife, um die Summe aller Elemente des Arrays zu berechnen, speichere sie in der Variable sum und gib sie mit std::cout aus.
Hinweis anzeigen
Verwende eine `for (int i = 0; i < 5; ++i)`-Schleife und addiere jedes Element innerhalb der Schleife mit `sum += grades[i];`.
Lösung nach 3 Versuchen verfügbar
Welches ist die korrekte Methode, um ein Element am Ende eines std::vector in C++ hinzuzufügen?
std::vector<int> numbers; // come aggiungere il valore 50?