# 7. Array/vector

### Array

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:

![](https://lh6.googleusercontent.com/gj7s_cC4mFSVT4FciIUXwlpbf4XQJX49CtGtoacsq4vVtTzvk2wY3XUth25DOX4QS0yTNtD6Cf8f7SuTBOJMU_egSxrLB1LS3TE9gg3Yn6OiQMJUl0MsX1Gt4oDaGfWg0uV51mN4y0eWe1MVdY7o)

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.

```cpp
int rij[10], getal;
for(int i=0;i<10;i++){
    cin >> getal;
    rij[i]= getal;
}
```

De waardes in een array afrukken kan op de volgende manier.

```cpp
for (int teller = 0; teller < 10;teller++) {
     cout << rij[teller] << endl;
}
```

of&#x20;

```cpp
for (int waarde:rij)
    cout << waarde << endl;
```

{% hint style="info" %}
Je kan een array ook op de volgende manier vullen:\
`int getal[5] = { 100, 101, 102, 103, 104 };`
{% endhint %}

**Opdracht 7.1**\
Maak de opdracht [ISBN](https://informatica.cuttle.org/?action=question_standalone\&que_id=68\&t=499d692fda577d8e).

<figure><img src="/files/BzJZiH9WiblgqAgeqO2g" alt="" width="188"><figcaption></figcaption></figure>

{% hint style="info" %}
Om je array een beginwaarde te geven, kun je de volgende code gebruiken:\
`int rij[10]{};`\
Op deze manier wordt de inhoud van je array op 0 gezet.
{% endhint %}

**Opdracht 7.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.&#x20;

### **Vector**

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.&#x20;

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);&#x20;

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 7.3**\
Maak de opdracht: [Balletje Balletje](https://informatica.cuttle.org/?action=question_standalone\&que_id=209\&t=0d1a1f76635bd7d8)

**Opdracht 7.4**\
Maak de opdracht: [Morsecode](https://informatica.cuttle.org/?action=question_standalone\&que_id=210\&t=93a5ae62759f5829)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://girls.gitbook.io/c++-cursus/leer-meer-c++/7.-array-vector.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
