Vector-in C++ Standaardsjabloonbibliotheek (STL) met voorbeeld
โก Slimme samenvatting
Vector-in C++ is een dynamische array uit de Standard Template Library die zichzelf automatisch aanpast aan de grootte wanneer elementen worden toegevoegd of verwijderd, waarbij items in aaneengesloten geheugen worden opgeslagen zodat programmeurs ze kunnen benaderen en doorlopen met behulp van iterators.

Wat is een C++ Vector?
A C++ Vector is een dynamische array die zichzelf automatisch kan aanpassen. Het aanpassen van de grootte vindt plaats nadat een element is toegevoegd aan of verwijderd uit de vector. De opslag wordt automatisch afgehandeld door de container. De elementen van een vector worden opgeslagen in aaneengesloten opslag. Dit maakt het mogelijk C++ programmeurs om toegang te krijgen tot de vectorelementen en deze te doorlopen met behulp van iteratoren.
Het invoegen van nieuwe gegevens in een vector gebeurt aan het einde ervan. Dit kost differentiรซle tijd. Het verwijderen van een element uit een vector kost constante tijd. De reden hiervoor is dat de vector niet hoeft te worden aangepast. Het invoegen of verwijderen van een element aan het begin van de vector kost lineaire tijd.
Voordat je code schrijft met vectoren, is het handig om te weten wanneer ze de juiste container zijn om te gebruiken.
Wanneer gebruik je een vector?
A C++ vector moet worden gebruikt onder de volgende omstandigheden:
- Bij het omgaan met data-elementen die consistent veranderen.
- Als de grootte van de gegevens niet van tevoren bekend is, hoeft u bij de vector de maximale grootte van de container niet in te stellen.
Hoe vectoren te initialiseren in C++
De syntaxis van vectoren in C++ is:
vector <data-type> name (items)
Zoals hierboven weergegeven, beginnen we met het vectortrefwoord.
- De data type is het gegevenstype van de elementen die in de vector moeten worden opgeslagen.
- De naam is de naam van de vector of de gegevenselementen.
- De artikelen Geeft het aantal elementen voor de vectorgegevens aan. Deze parameter is optioneel.
Zodra een vector bestaat, bieden iterators een aanwijzerachtige manier om door de elementen ervan te navigeren.
Iteratoren
Het doel van iterators is om ons te helpen toegang te krijgen tot de elementen die in een vector zijn opgeslagen. Het is een object dat werkt als een pointer. Hieronder staan โโde meest voorkomende iterators die worden ondersteund door C++ vectoren:
- vector::begin(): het geeft een iterator die naar het eerste element van de vector verwijst.
- vector::end(): het geeft een iterator die verwijst naar het voorbij-het-eind-element van de vector.
- vector::cbegin(): Het is hetzelfde als `vector::begin()`, maar het heeft niet de mogelijkheid om elementen te wijzigen.
- vector::cend(): Het is hetzelfde als `vector::end()`, maar je kunt de elementen van een vector niet wijzigen.
Het volgende voorbeeld vult een vector en doorloopt deze vervolgens met zowel veranderlijke als constante iterators.
Voorbeeld 1
#include <iostream> #include <vector> using namespace std; int main() { vector<int> nums; for (int a = 1; a <= 5; a++) nums.push_back(a); cout << "Output from begin and end: "; for (auto a = nums.begin(); a != nums.end(); ++a) cout << *a << " "; cout << "\nOutput from cbegin and cend: "; for (auto a = nums.cbegin(); a != nums.cend(); ++a) cout << *a << " "; return 0; }
Output:
Hier is een screenshot van de code:
Code Uitleg:
- Neem het iostream-headerbestand op in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
- Neem het vectorheaderbestand op in onze code. Het zal ons in staat stellen om met vectoren te werken C++.
- Neem de std-naamruimte op om de klassen en functies ervan te gebruiken zonder deze aan te roepen.
- Roep de functie main() aan waarbinnen de logica van het programma moet worden toegevoegd.
- De { markeert het begin van de hoofdtekst van de functie main().
- Declareer een vector met de naam nums om een โโreeks gehele getallen op te slaan.
- Maak een for-lus om door de vector te itereren. De variabele helpt ons om door de elementen van de vector te itereren, van het eerste tot en met het vijfde element.
- Duw elementen vanaf de achterkant in de vectornum. Voor elke iteratie wordt hierdoor de huidige waarde van variabele a toegevoegd aan de vector, namelijk 1 tot 5.
- Druk wat tekst af op de console.
- Gebruik een iteratorvariabele a om de elementen van vector nums te herhalen, van het begin tot het voorbij-het-eind-element. Merk op dat we vector::begin() en vector::end() iterators gebruiken.
- Druk voor elke iteratie de waarden af โโwaarnaar iteratorvariabele a op de console verwijst.
- Druk wat tekst af op de console. De \n is een teken voor een nieuwe regel, waarbij de cursor naar de nieuwe regel wordt verplaatst om vanaf daar af te drukken.
- Gebruik een iteratorvariabele om te itereren over de elementen van de vector nums, van het begin tot het element voorbij het einde. Merk op dat we de iterators vector::cbegin() en vector::cend() gebruiken.
- Druk voor elke iteratie de waarden af โโwaarnaar iteratorvariabele a op de console verwijst.
- De hoofdfunctie moet een waarde retourneren als het programma succesvol wordt uitgevoerd.
- Einde van de hoofdtekst van de functie main().
modifiers
Modifiers worden gebruikt om de betekenis van het opgegeven gegevenstype te wijzigen. Hier zijn de gebruikelijke modifiers in C++:
- vector::push_back(): Deze modifier duwt de elementen vanaf de achterkant.
- vector::insert(): Voor het invoegen van nieuwe items in een vector op een opgegeven locatie.
- vector::pop_back(): Deze modifier verwijdert de vectorelementen van de achterkant.
- vector::wissen(): Het wordt gebruikt voor het verwijderen van een reeks elementen van de opgegeven locatie.
- vector::clear(): Het verwijdert alle vectorelementen.
Het volgende voorbeeld past deze modifiers achter elkaar toe om te zien hoe een vector verandert.
Voorbeeld 2
#include <iostream> #include <vector> using namespace std; int main() { vector<int> nums; nums.assign(5, 1); cout << "Vector contents: "; for (int a = 0; a < nums.size(); a++) cout << nums[a] << " "; nums.push_back(2); int n = nums.size(); cout << "\nLast element: " << nums[n - 1]; nums.pop_back(); cout << "\nVector contents: "; for (int a = 0; a < nums.size(); a++) cout << nums[a] << " "; nums.insert(nums.begin(), 7); cout << "\nFirst element: " << nums[0]; nums.clear(); cout << "\nSize after clear(): " << nums.size(); }
Output:
Hier is een screenshot van de code:
Code Uitleg:
- Neem het iostream-headerbestand op in onze code om de functies ervan te gebruiken.
- Neem het vectorheaderbestand op in onze code om de functies ervan te gebruiken.
- Neem de std-naamruimte op om de klassen ervan te gebruiken zonder deze aan te roepen.
- Roep de functie main() aan. De programmalogica moet in de hoofdtekst worden toegevoegd.
- Het begin van de hoofdtekst van de functie main().
- Declareer een vector met de naam nums om enkele gehele waarden op te slaan.
- Bewaar 5 elementen in de vectornums. Elk met een waarde van 1.
- Druk wat tekst af op de console.
- Gebruik een iteratorvariabele a om de elementen van vectornums te herhalen.
- Druk voor elke iteratie de waarden van vectorgetallen op de console af.
- Voeg de waarde 2 toe aan het einde van de vectornums.
- Declareer een geheel getalvariabele n om de grootte van de vectornums op te slaan.
- Druk de laatste waarde van vectorgetallen af โโnaast andere tekst. Het zou een 2 moeten opleveren.
- Verwijder het laatste element uit de vectornums. De 2 worden verwijderd.
- Tekst afdrukken op de console. De \n verplaatst de cursor naar de nieuwe regel om de tekst daar af te drukken.
- Gebruik een iteratorvariabele a om de elementen van vectornums te herhalen.
- Druk voor elke iteratie de waarden van vectorgetallen op de console af.
- Voeg de waarde 7 in aan het begin van de vectornums.
- Druk de eerste waarde van vectornums af naast andere tekst. Het zou 7 moeten retourneren.
- Verwijder alle elementen uit de vectornums.
- Druk de grootte van het vectorgetal af naast andere tekst nadat u alle inhoud hebt gewist. Het zou 0 moeten retourneren.
- Einde van de hoofdtekst van de functie main().
Hefvermogen
Gebruik het volgende functies om de capaciteit van een vector te bepalen:
- Maat() โ Het retourneert het aantal items in een vector.
- Max_grootte() โ Het retourneert het maximale aantal items dat een vector kan opslaan.
- Capaciteit() โ Deze functie geeft de hoeveelheid opslagruimte weer die aan een vector is toegewezen.
- Formaat wijzigen() โ Het past de grootte van de container aan zodat deze n items kan bevatten. Als de huidige grootte van de vector groter is dan n, worden de items aan het einde van de vector verwijderd. Als de huidige grootte van de vector kleiner is dan n, worden extra items aan het einde van de vector toegevoegd.
- Leeg() โ Het retourneert true als een vector leeg is. Anders retourneert het false.
Dit laatste voorbeeld rapporteert en past de opslag van een vector aan met behulp van de bovenstaande capaciteitsfuncties.
Voorbeeld 3
#include <iostream> #include <vector> using namespace std; int main() { vector<int> vector1; for (int x = 1; x <= 10; x++) vector1.push_back(x); cout << "Vector size: " << vector1.size()<< endl; cout << "Vector capacity: " << vector1.capacity() << endl; cout << "Maximum size of vector: " << vector1.max_size()<< endl; vector1.resize(5); cout << "Vector size after resizing: " << vector1.size() << endl; if (vector1.empty() == false) cout << "Vector is not empty"<<endl; else cout << "Vector is empty"<<endl; return 0; }
Output:
Hier is een screenshot van de code:
Code Uitleg:
- Neem het iostream-headerbestand op in onze code om de functie ervan te gebruiken.
- Neem het vectorheaderbestand op in onze code om de functies ervan te gebruiken.
- Neem de std-naamruimte op in onze code om de klassen ervan te gebruiken zonder deze aan te roepen.
- Roep de functie main() aan. De programmalogica moet worden toegevoegd aan de hoofdtekst van deze functie.
- Maak een vector met de naam vector1 om gehele getallen op te slaan.
- Gebruik een for-lus om variabele x te maken met waarden van 1 tot 10.
- Duw de waarden van variabele x in de vector.
- Druk de grootte van de vector af samen met andere tekst op de console.
- Druk de capaciteit van de vector af samen met andere tekst op de console.
- Druk het maximale aantal items af dat de vector naast andere tekst op de console kan bevatten.
- Verklein de vector zodat deze slechts 5 elementen bevat.
- Druk het nieuwe formaat van de vector af naast andere tekst.
- Controleer of de vector niet leeg is.
- Druk tekst af op de console als de vector niet leeg is.
- Gebruik een else-instructie om aan te geven wat er moet gebeuren als de vector leeg is.
- Tekst die op de console moet worden afgedrukt als de vector leeg is.
- Het programma moet waarde retourneren na succesvolle voltooiing.
- Einde van de hoofdtekst van de functie main().





