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:
int grades[5] = {18, 22, 25, 28, 30}; // Array of 5 integersBelangrijkste 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
[](bijvoorbeeldgrades[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:
#include <vector>
std::vector<int> numbers; // Creates an empty vector of integersAlgemene 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 (bijvoorbeeldnumbers.at(0)), die een uitzondering genereert als de index buiten het bereik valt.
std::vector<int> scores = {90, 85};
scores.push_back(95); // scores now contains {90, 85, 95}
std::cout << scores.size(); // Prints 3Probeer het zelf
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().
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
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.
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
Wat is de juiste methode om een element aan het einde van een std::vector in C++ toe te voegen?
std::vector<int> numbers; // come aggiungere il valore 50?