8. Array/vector
Last updated
Last updated
Het kan voorkomen dat je in je programma veel variabelen van hetzelfde type gebruikt. Stel dat je voor een jaar wil behouden in hoeveel minuten je naar school fietst.
int dag1, dag2, dag3, dag4, dag5, t/m dag365
Als we dan het gemiddelde van het aantal fietsminuten willen berekenen dan krijg je de code:
gemiddelde = (dag1 + dag2 + dag3 + dag4 + t/m dag365) / 365
Dit is veel typwerk en kan dus slimmer. Hiervoor gebruiken we arrays:
int dag[365]; //Dit is een array met de naam dag met 356 getallen
Een array kun je zien als een rij met hokjes waarin je een bepaalde waarde kan stoppen. Je moet bij het declareren van de array aangeven uit hoeveel hokjes de array bestaat en van welk de type de hokjes zijn.
Een array met 10 hokjes declareer je al volgt:
int rij[10];
Elke hokje kan 1 integer bevatten.
Deze array kun je als volgt voorstellen:
De verschillende hokjes kan je benaderen met vierkante haken [ ], bijvoorbeeld rij[1]
. Het getal 1 geeft aan over welk hokje we het hebben (ook wel index genoemd), in dit geval is dat de waarde 7. Let op het eerste hokje in de array heeft index 0.
Een array kun je vullen met een for-loop.
De waardes in een array afrukken kan op de volgende manier.
of
Opdracht 8.2 Schrijf een programma dat om de invoer vraagt van het aantal keren dat met een dobbelsteen wordt gegooid. De computer gooit de dobbelsteen, gebruik hiervoor de rand() die je al eerder gebruikt hebt om een random getal tussen 1 en 6 te genereren. Geef als uitvoer hoe vaak elk getal gegooid is.
Vectors zijn dynamische arrays. Voordeel is dat je niet van te voren de grootte van je array hoeft te bepalen maar dat de grootte dynamisch tijdens je programma aanpast. Nadeel is dat het iets minder efficiënt is.
Voordat je een vector kan gebruiken moet je eerst de library importeren:
#include <vector>
Met de volgende code kun je een vector declareren:
vector<int> voorbeeldVector;
Dit is een vector met integers. Je kan natuurlijk ook een vector met strings of andere types declareren.
Een vector kan je op dezelfde manier vullen als een array maar het kan ook op de volgende manier: voorbeeldVector.push_back(3); voorbeeldVector.push_back(2); voorbeeldVector.push_back(5);
Printen van de vector werkt op dezelfde manier als de array.
In de vector library zitten nog handige functies. Voorbeelden van functies:
- size()
-> geeft de grootte van de vector aan.
- front()
-> geeft het eerste element in de vector.
- back()
-> geeft het laatste element in de vector.
- popback()
-> verwijdert het laatste element in de vector.
Opdracht 8.1 Maak de opdracht .
Opdracht 8.3 Maak de opdracht:
Opdracht 8.4 Maak de opdracht: