Direkt zum Hauptinhalt springen
eLearner.app
Modul 5 · Lektion 1 von 211/18 im Kurs~12 min
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:

Code
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:

Code
#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.
Code
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

Übung#cpp.m5.l1.e1
Versuche: 0Wird geladen…

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.

Editor wird geladen…
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

Übung#cpp.m5.l1.e2
Versuche: 0Wird geladen…

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.

Editor wird geladen…
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

Quiz#cpp.m5.l1.q1
Bereit

Welches ist die korrekte Methode, um ein Element am Ende eines std::vector in C++ hinzuzufügen?

Code
std::vector<int> numbers; // come aggiungere il valore 50?
Antwortoptionen