Terug naar de inhoudsopgave

Les 10 – Verzamelingen

Vectoren

Tot nu toe hebben we telkens gebruik gemaakt van losse gegeven. Wat nu als we een verzmeling van gegevens op willen slaan? Als we bijvoorbeeld de gebruiker twintig getallen in laten voeren. Moeten we dan twintig verschillende variabelen declareren? Nee, dan gebruiken we een vector.

Declaratie

Een vector is een rij van gegevens van hetzelfde type. De declaratie van een vector heeft een bijzonderheid.

vector<int> myRowOfIntegers;
	

Je ziet dat we achter het woord vector de aanduiding <int> zetten. Daarmee geven we aan dat we in deze vector gegevens van het type int willen opslaan.

Vector vullen

We vullen een vector door steeds een gegeven achter de bestaande verzamelingen te plakken. Een vector is een object en bevat dus memberfuncties. Om een gegeven aan te verzameling toe te voegen, gebruiken we de memberfunctie push_back.

#include <vector>

using namespace std;

// het programma start hier
void main()
{
	// declareer vector
	vector<int> myRowOfIntegers;
	
	// voeg getallen toe aan vector
	myRowOfIntegers.push_back(1);
	myRowOfIntegers.push_back(3);
}
	

Merk op dat we de regel #include <vector> nodig hebben om met vectoren te kunnen werken.

Gegevens ophalen

We kunnen nu gegevens naar een vector schrijven, maar we willen ze natuurlijk ook weer kunnen lezen. Hiervoor maken we gebruik van de memberfunctie at.

#include <iostream>
#include <vector>

using namespace std;

// het programma start hier
void main()
{
	// declareer vector
	vector<int> myRowOfIntegers;
	
	// voeg getallen toe aan vector
	myRowOfIntegers.push_back(1);
	myRowOfIntegers.push_back(2);
	
	// schrijf inhoud van vector naar het scherm
	cout << myRowOfIntegers.at(0);
	cout << myRowOfIntegers.at(1);
}
	

Denk er aan dat de elementen in een vector genummerd worden vanaf 0.

Een vector doorlopen

Zodra de vector groeit, is het lastig om alle elementen apart op te vragen met de at memberfunctie. Een handigere manier is om gebruik te maken van een for-lus. We kunnen met de memberfunctie size opvragen hoeveel elementen de vector bevat en zo alle gegevens stuk voor stuk aflopen.

#include <iostream>
#include <vector>

using namespace std;

// het programma start hier
void main()
{
	// declareer vector
	vector<int> myRowOfIntegers;
	
	// voeg getallen toe aan vector
	myRowOfIntegers.push_back(1);
	myRowOfIntegers.push_back(2);
	
	// doorloop vector
	for (int i = 0; i < myRowOfIntegers.size(); i++)
	{
		cout << myRowOfIntegers.at(i) << endl;
	}
}
	

Je kunt gegevens uit een vector verwijderen door gebruik te maken van de memberfunctie erase.

Bij de les