10. Functies - deel 2
In het hoofdstuk Functies - deel 1 heb je over parameters geleerd. Bij een functie zijn er 2 soorten parameters:
Call by value: een kopie van de variabele wordt als parameter doorgegeven. Dit betekent dat als de variabele in de functie van waarde veranderd, de originele variabele nog steeds dezelfde waarde heeft.
Call by reference: de variabele zelf wordt als parameter doorgegeven. Dit betekent dat als de variabele in de functie van waarde veranderd, de originele variabele ook van waarde is veranderd. Met een & teken voor de parameter geef je aan dat dit een call by reference variabele is.
Voorbeeld van call by value:
Voorbeeld van call by reference:
Opdracht 10.1 Probeer beide voorbeelden uit. Wat is het verschil tussen de 2 voorbeelden?
Een vector kun je ook call-by-value en call-by-reference aan een functie doorgeven:
void func(vector<int> vect) //call-by-value
void func(vector<int> &vect) //call-by-reference
Voorbeeld met vector als call-by-reference parameter:
Voorbeeld met 2D vector als call-by-value parameter:
Opdracht 10.2 Schrijf de eerste opgave van het hoofdstuk Vectors nu met een functies voor elk commando. Geef de vector aan de functies door als parameter.
Built-in functies
C++ bevat nuttige functies die je kan gebruiken. Bijvoorbeeld:
- min
: geeft de kleinste van 2 getallen
- max
: geeft de grootste van 2 getallen
- swap
: hiermee kun je de waardes van 2 variabelen omwisselen
- sqrt
: berekent de wortel. Deze kot
- pow
: berekent de macht
- ceil
: naar boven afronden
- floor
: naar beneden afronden
- sort
: sorteert de waardes in een array
Voor sommige functies moet je wel een extra library toevoegen aan je code. Bijvoorbeeld:
Op de pagina https://en.cppreference.com/w/cpp/header kun je een reference vinden van alle libraries. Als je bijvoorbeeld de library <cmath> selecteert dan kan je alle built-in functies zien van deze library.
Opdracht 10.3 Bepaal de kleinste van 3 getallen met de functie min. Kijk op de reference pagina hoe je de functie min kan gebruiken.
Opdracht 10.4
Schrijf een programma dat de cijfers in onderstaande vector sorteert. Maak gebruik van de functie sort
. Kijk op de reference pagina hoe je de functie sort
kan gebruiken.
vector cijfers = { 5, 4, 9, 12, 8, 7, 13, 15, 4, 2, 1, 0, 4, 2, 5, 0, 4, 2, 10, 5, 20, 1, 7, 23, 16};
Zoals je kan zien zijn er veel verschillende standaard libaries die je kan toevoegen aan je code. Je kunt alle standaard libraries ook in een keer toevoegen met de code:
#include <bits/stdc++.h>
Deze code is tijdens programmeerwedstrijden heel nuttig omdat het je tijd bespaart. Maar het heeft ook zeker nadelen dus buiten programmeerwedstrijden is het beter dit niet te gebruiken.
Last updated