Direct naar de hoofdinhoud
Module 5 · Les 1 van 211/18 in de cursus~12 min
Modulelessen (1/2)

Arrays en vectoren

In C++ wordt het beheer van gegevensverzamelingen voornamelijk gedaan via twee tools: arrays in oude stijl (arrays in C-stijl) en vectoren (std::vector). Het begrijpen van het verschil tussen statisch en dynamisch geheugen is van fundamenteel belang voor het schrijven van efficiënte code.


1. Statische arrays (arrays in C-stijl)

Een array is een verzameling elementen van hetzelfde type, opgeslagen op aangrenzende geheugenlocaties. De grootte van een statische array moet tijdens het compileren bekend zijn en kan later niet meer worden gewijzigd:

C++
int grades[5] = {18, 22, 25, 28, 30}; // Array of 5 integers

Belangrijkste kenmerken:

  • Vaste grootte: u kunt tijdens runtime geen elementen toevoegen of verwijderen.
  • Stacktoewijzing: Zeer snel toe te wijzen en de toewijzing ongedaan te maken.
  • Toegang: uitgevoerd via de indexoperator [] (bijvoorbeeld grades[0] voor het eerste element).

2. Dynamische vectoren (std::vector)

De C++ Standard Template Library (STL) biedt de klasse std::vector, die een dynamische array vertegenwoordigt. Om het te gebruiken, moet u de header <vector> opnemen:

C++
#include <vector>

std::vector<int> numbers; // Creates an empty vector of integers

Algemene bewerkingen:

  • Toevoegen aan einde: de methode .push_back(value) voegt een element in aan het einde van de vector, waardoor het geheugen indien nodig automatisch opnieuw wordt toegewezen.
  • Grootte: de methode .size() retourneert het aantal elementen dat zich momenteel in de vector bevindt.
  • Veilige toegang: naast de operator [] kunt u de methode .at(index) gebruiken (bijvoorbeeld numbers.at(0)), die een uitzondering genereert als de index buiten het bereik valt.
C++
std::vector<int> scores = {90, 85};
scores.push_back(95); // scores now contains {90, 85, 95}
std::cout << scores.size(); // Prints 3

Probeer het zelf

Oefening#cpp.m5.l1.e1
Pogingen: 0Laden…

Declareer een std::vector van gehele getallen met de naam getallen. Voeg de waarden 10, 20 en 30 eraan toe met behulp van de methode .push_back() en druk vervolgens de grootte ervan af met getallen.size().

Editor laden…
Toon hint

Declareer de vector met `std::vector<int> getallen;`, voeg de drie getallen in met `.push_back(value)`, en druk deze af met `std::cout << getallen.size();`.

Oplossing beschikbaar na 3 pogingen

Oefening#cpp.m5.l1.e2
Pogingen: 0Laden…

In principe wordt een cijferreeks van 5 elementen gedefinieerd. Schrijf een for-lus om de som van alle elementen in de array te berekenen, sla deze op in de variabele som en druk deze af met std::cout.

Editor laden…
Toon hint

Gebruik een `for (int i = 0; i < 5; ++i)`lus en som elk element binnen de lus op met `sum += grades[i];`.

Oplossing beschikbaar na 3 pogingen

Quiz#cpp.m5.l1.q1
Klaar

Wat is de juiste methode om een ​​element aan het einde van een std::vector in C++ toe te voegen?

C++
std::vector<int> numbers; // come aggiungere il valore 50?
Antwoordmogelijkheden