Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

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

Wat is een C++ Vector?

Een C++ Vector is een dynamische array die zichzelf automatisch kan vergroten of 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 aaneengesloten opslag opgeslagen. Hierdoor kunnen C++-programmeurs toegang krijgen tot de vectorelementen en deze doorkruisen met behulp van iterators.

Het invoegen van nieuwe gegevens in een vector gebeurt aan het einde ervan. Dit kost een differentiële tijd. Het verwijderen van een element uit een vector kost constante tijd. De reden is dat het niet nodig is om het formaat van de vector te wijzigen. Het invoegen of verwijderen van een element aan het begin van de vector kost lineaire tijd.

In deze C++-zelfstudie leert u:

  • Wat is een C++-vector?
  • Wanneer een vector gebruiken?
  • Vectoren initialiseren in C++
  • Iterators
  • Modificaties
  • Voorbeeld 1
  • Voorbeeld 2
  • Capaciteit
  • Voorbeeld 3

Wanneer een vector gebruiken?

Onder de volgende omstandigheden moet een C++-vector worden gebruikt:

  • Bij het omgaan met gegevenselementen die constant 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.

Vectoren initialiseren in C++

De syntaxis van vectoren in C++ is:

vector <data-type> 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 data-elementen.
  • De items geven het aantal elementen voor de vectorgegevens aan. Deze parameter is optioneel.

Iterators

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 aanwijzer. Dit zijn de algemene iterators die worden ondersteund door C++-vectoren:

  • vector::begin(): het geeft een iterator die naar het eerste element van de vector wijst.
  • vector::end(): het geeft een iterator die verwijst naar het verleden-het-eindelement 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 vectorelementen niet wijzigen.

Modificaties

Modifiers worden gebruikt om de betekenis van het opgegeven gegevenstype te wijzigen. Dit zijn de algemene modifiers 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 gespecificeerde 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 <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;
}

Uitvoer:

Hier is een screenshot van de code:

Code uitleg:

  1. Neem het iostream-headerbestand op in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
  2. Neem het vectorheaderbestand op in onze code. Het stelt ons in staat om met vectoren in C++ te werken.
  3. Voeg de std-naamruimte toe om de klassen en functies te gebruiken zonder deze aan te roepen.
  4. Roep de functie main() 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 ​​set gehele getallen op te slaan.
  7. Maak een for-lus om ons te helpen de vector te herhalen. De variabele helpt ons bij het herhalen van de vectorelementen, vanaf 1 st tot 5 de elementen.
  8. Duw elementen vanaf de achterkant in de vector num. Voor elke iteratie voegt dit de huidige waarde van variabele a toe aan de vector, die 1 tot 5 is.
  9. Druk wat tekst af op de console
  10. Gebruik een iteratorvariabele a om de elementen van vectornums te herhalen vanaf het begin tot het verleden-the-end-element. Merk op dat we vector::begin() en vector::end() iterators gebruiken.
  11. Druk de waarden af ​​waarnaar wordt verwezen door iteratorvariabele en op de console voor elke iteratie.
  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 vectornums van het begin tot het verleden-the-end-element te herhalen. Merk op dat we vector::cbegin() en vector::cend() iterators gebruiken.
  14. Druk de waarden af ​​waarnaar wordt verwezen door iteratorvariabele a op de console voor elke iteratie.
  15. De hoofdfunctie zou een waarde moeten retourneren als het programma succesvol is uitgevoerd.
  16. Einde van de hoofdtekst van de functie main().

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();			
}

Uitvoer:

Hier is een screenshot van de code:

Code uitleg:

  1. Neem het iostream-headerbestand op in onze code om de functies ervan te gebruiken.
  2. Neem het vectorheaderbestand op in onze code om de functies te gebruiken.
  3. Voeg de std-naamruimte toe om de klassen te gebruiken zonder deze aan te roepen.
  4. Roep de functie main() aan. De programmalogica moet in de body worden toegevoegd.
  5. Het begin van de hoofdtekst van de functie main().
  6. Declareer een vector met de naam nums om enkele gehele waarden 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 vectorgetallen te herhalen.
  10. Druk de waarden van vectorgetallen af ​​op de console voor elke iteratie.
  11. Voeg de waarde 2 toe aan het einde van de vectornummers.
  12. Declareer een integer-variabele n om de grootte van de vectorgetallen op te slaan.
  13. Druk de laatste waarde van vectorgetallen af ​​naast andere tekst. Het zou een 2 moeten teruggeven.
  14. Verwijder het laatste element uit de vectornummers. De 2 worden verwijderd.
  15. Tekst afdrukken 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 vectorgetallen te herhalen.
  17. Druk de waarden van vectorgetallen af ​​op de console voor elke iteratie.
  18. Voer de waarde 7 in aan het begin van de vectornummers.
  19. Druk de eerste waarde van vectorgetallen 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 alle inhoud is 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:

  • Maat() – Het geeft het aantal items in een vector terug.
  • Max_size() -Het geeft het hoogste aantal items terug dat een vector kan opslaan.
  • Capaciteit () –Het geeft de hoeveelheid opslagruimte terug die aan een vector is toegewezen.
  • Formaat wijzigen () –Het wijzigt het formaat van de container 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 er extra items aan de achterkant van de vector toegevoegd.
  • Leeg () –i t geeft true terug als een vector leeg is. Anders wordt false geretourneerd.

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;
}

Uitvoer:

Hier is een screenshot van de code:

Code uitleg:

  1. Neem het iostream-headerbestand op in onze code om de functie te gebruiken.
  2. Neem het vectorheaderbestand op in onze code om de functies te gebruiken.
  3. Neem de std-naamruimte op in onze code om de klassen te gebruiken zonder deze aan te roepen.
  4. Roep de functie main() aan. De programmalogica moet worden toegevoegd aan de hoofdtekst 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 het formaat 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. Verklein de vector 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. Tekst op de console afdrukken als de vector niet leeg is.
  15. Gebruik een else-statement om aan te geven wat je moet doen als de vector leeg is.
  16. Tekst om af te drukken op de console als de vector leeg is.
  17. Het programma moet waarde teruggeven na succesvolle voltooiing.
  18. Einde van de hoofdtekst van de functie ()

Samenvatting:

  • Een C++-vector is een dynamische array die zichzelf automatisch van grootte kan veranderen wanneer een element eraan wordt toegevoegd of eruit wordt verwijderd.
  • De opslag voor een vector wordt automatisch afgehandeld door de container.
  • De elementen van een vector worden opgeslagen in aaneengesloten opslag om toegang te krijgen en vervolgens te doorlopen met behulp van iterators.
  • 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 constant veranderen.
  • U kunt ook vectoren gebruiken als de grootte van de gegevens niet bekend is voordat u begint.

C Taal

  1. C Standaard bibliotheekfuncties
  2. Operators in C++ met voorbeeld:wat is, typen en programma's
  3. C++ do...while-lus met voorbeelden
  4. C++ Switch Case Statement met VOORBEELD
  5. C++ Dynamische toewijzing van arrays met voorbeeld
  6. C++-aanwijzers met voorbeelden
  7. Overbelasting van C++-operator met voorbeelden
  8. C++-structuur met voorbeeld
  9. std::lijst in C++ met Voorbeeld
  10. C++-functies met programmavoorbeelden
  11. Verschil tussen structuur en klasse:uitgelegd met C++-voorbeeld