Vector in C ++ Standard Template Library (STL) met voorbeeld

Inhoudsopgave:

Anonim

Wat is een C ++ Vector?

Een C ++ VECTOR is een dynamische array die zichzelf automatisch kan vergroten / verkleinen. Het formaat wijzigen 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 in aangrenzende opslag opgeslagen. Hierdoor kunnen C ++ - programmeurs toegang krijgen tot de vectorelementen en deze doorlopen met iterators.

Het invoegen van nieuwe gegevens in een vector gebeurt aan het einde. Dit kost een verschillende tijd. Het verwijderen van een element uit een vector kost constante tijd. De reden is dat het formaat van de vector niet hoeft te worden aangepast. Het invoegen of verwijderen van een element aan het begin van de vector kost lineaire tijd.

In deze C ++ Tutorial leer je:

  • Wat is een C ++ Vector?
  • Wanneer moet u een vector gebruiken?
  • Hoe vectoren in C ++ te initialiseren
  • Iteratoren
  • Modificatoren
  • voorbeeld 1
  • Voorbeeld 2
  • Capaciteit
  • Voorbeeld 3

Wanneer moet u een vector gebruiken?

Een C ++ -vector moet worden gebruikt onder de volgende omstandigheden:

  • Bij het omgaan met gegevenselementen die consistent veranderen.
  • Als de grootte van de gegevens niet bekend is voordat u begint, hoeft u voor de vector niet de maximale grootte van de container in te stellen.

Hoe vectoren in C ++ te initialiseren

De syntaxis van vectoren in C ++ is:

vector  name (items)
  • Zoals hierboven weergegeven, beginnen we met het vectorzoekwoord.
  • Het datatype is het datatype van de elementen die in de vector moeten worden opgeslagen.
  • De naam is de naam van de vector of de gegevenselementen.
  • De items geven het aantal elementen voor de vectorgegevens aan. Deze parameter is optioneel.

Iteratoren

Het doel van iteratoren 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 aanwijzer. Hier zijn de algemene 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 verleden-het-einde-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 kan geen vectorelementen wijzigen.

Modificatoren

Modificatoren worden gebruikt om de betekenis van het opgegeven gegevenstype te wijzigen. Hier zijn de algemene modificatoren in C ++:

  • vector :: push_back (): Deze modifier duwt de elementen van achteren.
  • 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 :: erase (): Het wordt gebruikt voor het verwijderen van een reeks elementen van de opgegeven locatie.
  • vector :: clear (): het verwijdert alle vectorelementen.

voorbeeld 1

#include #include using namespace std;int main(){vector 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;}

Uitgang:

Hier is een screenshot van de code:

Code Verklaring:

  1. Neem het iostream-headerbestand op in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
  2. Neem het vectorkopbestand op in onze code. Het stelt ons in staat om met vectoren in C ++ te werken.
  3. Neem de std-naamruimte op om de klassen en functies ervan te gebruiken zonder deze op te roepen.
  4. Roep de main () functie aan waarbinnen de logica van het programma moet worden toegevoegd.
  5. De {markeert het begin van de hoofdtekst van de functie main ().
  6. Declareer een vector met de naam nums om een ​​reeks gehele getallen op te slaan.
  7. Maak een for-lus om ons te helpen de vector te herhalen. De variabele helpt ons om de vectorelementen te herhalen, van 1 e tot 5 e elementen.
  8. Duw elementen vanaf de achterkant in het vectornummer. Voor elke iteratie wordt de huidige waarde van variabele a opgeteld bij de vector, die 1 tot 5 is.
  9. Druk wat tekst af op de console
  10. Gebruik een iteratorvariabele a om de elementen van vectornummers te herhalen van het begin tot het verleden-het-einde. Merk op dat we vector :: begin () en vector :: end () iteratoren gebruiken.
  11. Druk voor elke iteratie de waarden af ​​waarnaar wordt verwezen door iterator-variabele an op de console.
  12. Druk wat tekst af op de console. De \ n is een teken voor een nieuwe regel, waarmee de cursor naar de nieuwe regel wordt verplaatst om van daaruit af te drukken.
  13. Gebruik een iteratorvariabele om de elementen van vectornummers te herhalen van het begin tot het voorbij het einde. Merk op dat we vector :: cbegin () en vector :: cend () iteratoren gebruiken.
  14. Druk voor elke iteratie de waarden af ​​waarnaar wordt verwezen door iteratorvariabele a op de console.
  15. De hoofdfunctie moet een waarde retourneren als het programma met succes wordt uitgevoerd.
  16. Einde van de hoofdtekst van de functie main ().

Voorbeeld 2

#include #include using namespace std;int main(){vector 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();}

Uitgang:

Hier is een screenshot van de code:

Code Verklaring:

  1. Neem het iostream-headerbestand op in onze code om de functies ervan te gebruiken.
  2. Neem het vectorkopbestand op in onze code om de functies ervan te gebruiken.
  3. Voeg de std-naamruimte toe om zijn klassen te gebruiken zonder deze op te roepen.
  4. Roep de functie main () aan. De programmalogica moet in zijn lichaam worden toegevoegd.
  5. Het begin van de hoofdtekst van de functie main ().
  6. Declareer een vector met de naam nums om enkele gehele getallen op te slaan.
  7. Sla 5 elementen op in de vectornummers. Elk met een waarde van 1.
  8. Druk wat tekst af op de console
  9. Gebruik een iteratorvariabele a om de elementen van vectornummers te herhalen.
  10. Druk voor elke iteratie de waarden van vectornummers op de console af.
  11. Voeg de waarde 2 toe aan het einde van de vectornummers.
  12. Declareer een integer-variabele n om de grootte van de vectornummers op te slaan.
  13. Druk de laatste waarde van vectornummers af naast andere tekst. Het zou een 2 moeten retourneren.
  14. Verwijder het laatste element uit de vectornummers. De 2 wordt verwijderd.
  15. Druk tekst af op de console. De \ n verplaatst de cursor naar de nieuwe regel om de tekst daar af te drukken.
  16. Gebruik een iteratorvariabele a om de elementen van vectornummers te herhalen.
  17. Druk voor elke iteratie de waarden van vectornummers op de console af.
  18. Voeg de waarde 7 in aan het begin van de vectornummers.
  19. Druk de eerste waarde van vectornummers af naast andere tekst. Het zou 7 moeten retourneren.
  20. Verwijder alle elementen uit de vectornummers.
  21. Druk de grootte van het vectornummer af naast andere tekst nadat u alle inhoud hebt gewist. Het zou 0 moeten retourneren.
  22. Einde van de hoofdtekst van de functie main ().

Capaciteit

Gebruik de volgende functies om de capaciteit van een vector te bepalen:

  • Grootte () - Geeft het aantal items in een vector terug.
  • Max_size () - Het retourneert het hoogste aantal items dat een vector kan opslaan.
  • Capacity () - Het retourneert de hoeveelheid opslagruimte die aan een vector is toegewezen.
  • Resize () - Hiermee wordt de grootte van de container gewijzigd zodat deze n items bevat. Als de huidige grootte van de vector groter is dan n, worden de achterste items uit de vector verwijderd. Als de huidige grootte van de vector kleiner is dan n, worden extra items aan de achterkant van de vector toegevoegd.
  • Empty () -i t retourneert true als een vector leeg is, anders geeft het false.

Voorbeeld 3

#include #include using namespace std;int main() {vector 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"<

Uitgang:

Hier is een screenshot van de code:

Code Verklaring:

  1. Neem het iostream-headerbestand op in onze code om de functie ervan te gebruiken.
  2. Neem het vectorkopbestand op in onze code om de functies ervan te gebruiken.
  3. Neem de std-naamruimte op in onze code om de klassen ervan te gebruiken zonder deze aan te roepen.
  4. Roep de functie main () aan. De programmalogica moet worden toegevoegd in de body van deze functie.
  5. Maak een vector met de naam vector1 om gehele getallen op te slaan.
  6. Gebruik een for-lus om variabele x te maken met waarden van 1 tot 10.
  7. Duw de waarden van variabele x in de vector.
  8. Druk de grootte van de vector af naast andere tekst op de console.
  9. Druk de capaciteit van de vector af naast andere tekst op de console.
  10. Druk het maximale aantal items af dat de vector kan bevatten naast andere tekst op de console.
  11. Pas de grootte van de vector aan zodat deze slechts 5 elementen bevat.
  12. Druk het nieuwe formaat van de vector af naast andere tekst.
  13. Controleer of de vector niet leeg is.
  14. Druk tekst af op de console als de vector niet leeg is.
  15. Gebruik een else-instructie om aan te geven wat u moet doen als de vector leeg is.
  16. Tekst die op de console moet worden afgedrukt als de vector leeg is.
  17. Het programma moet waarde teruggeven na succesvolle voltooiing.
  18. Einde van de hoofdtekst () functie.

Overzicht:

  • Een C ++ -vector is een dynamische array die zichzelf automatisch kan vergroten of verkleinen wanneer een element eraan wordt toegevoegd of verwijderd.
  • De opslag voor een vector wordt automatisch afgehandeld door de container.
  • De elementen van een vector worden opgeslagen in aangrenzende opslag om te worden benaderd en vervolgens doorlopen met iteratoren.
  • Het invoegen van nieuwe gegevens in een vector gebeurt aan het einde.
  • Het invoegen van gegevens in een vector kost een differentiële tijd.
  • Het verwijderen van een element uit een vector kost constante tijd.
  • Het invoegen of verwijderen van een element aan het begin kost lineaire tijd.
  • Vectoren moeten worden gebruikt bij het omgaan met gegevenselementen die consistent veranderen.
  • U kunt ook vectoren gebruiken als de grootte van de gegevens niet bekend is voordat u begint.