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