Vektor in C++ Standard Template Library (STL) mit Beispiel

Non-Profit C++ Vektor?

A C++ Vector ist ein dynamisches Array, dessen Größe sich automatisch ändern kann. Die Größenänderung erfolgt, nachdem ein Element zum Vektor hinzugefügt oder daraus gelöscht wurde. Die Speicherung erfolgt automatisch durch den Container. Die Elemente eines Vektors werden in einem zusammenhängenden Speicher abgelegt. Dies ermöglicht C++ Programmierer können mithilfe von Iteratoren auf die Vektorelemente zugreifen und sie durchlaufen.

Das Einfügen neuer Daten in einen Vektor erfolgt an dessen Ende. Dies erfordert eine Differenzzeit. Das Entfernen eines Elements aus einem Vektor dauert konstant. Der Grund dafür ist, dass die Größe des Vektors nicht geändert werden muss. Das Einfügen oder Löschen eines Elements am Anfang des Vektors dauert linear.

Wann sollte ein Vektor verwendet werden?

A C++ Vektor sollte unter den folgenden Umständen verwendet werden:

  • Beim Umgang mit Datenelementen, die sich ständig ändern.
  • Wenn die Größe der Daten vor Beginn nicht bekannt ist, erfordert der Vektor nicht, dass Sie die maximale Größe des Containers festlegen.

So initialisieren Sie Vektoren in C++

Die Syntax von Vektoren in C++ ist:

vector <data-type> name (items)
  • Wie oben gezeigt, beginnen wir mit dem Schlüsselwort vector.
  • Der Datentyp ist der Datentyp der Elemente, die im Vektor gespeichert werden sollen.
  • Der Name ist der Name des Vektors oder der Datenelemente.
  • Die Elemente geben die Anzahl der Elemente für die Daten des Vektors an. Dieser Parameter ist optional.

Iteratoren

Der Zweck von Iteratoren besteht darin, uns beim Zugriff auf die in einem Vektor gespeicherten Elemente zu helfen. Es handelt sich um ein Objekt, das wie ein Zeiger funktioniert. Hier sind die gängigen Iteratoren, die unterstützt werden von C++ Vektoren:

  • vector:: begin(): Es ergibt einen Iterator, der auf das erste Element des Vektors zeigt.
  • vector:: end(): Es ergibt einen Iterator, der auf das hinter dem Ende liegende Element des Vektors zeigt.
  • vector::cbegin(): Es ist dasselbe wie vector::begin(), verfügt jedoch nicht über die Möglichkeit, Elemente zu ändern.
  • vector::cend(): Es ist dasselbe wie vector::end(), kann aber keine Vektorelemente ändern.

Modifikatoren

Modifikatoren werden verwendet, um die Bedeutung des angegebenen Datentyps zu ändern. Hier sind die häufigsten Modifikatoren in C++:

  • vector::push_back(): Dieser Modifikator drückt die Elemente von hinten.
  • vector::insert(): Zum Einfügen neuer Elemente in einen Vektor an einer bestimmten Stelle.
  • vector::pop_back(): Dieser Modifikator entfernt die Vektorelemente von der Rückseite.
  • vector::erase(): Es wird zum Entfernen einer Reihe von Elementen vom angegebenen Speicherort verwendet.
  • vector::clear(): Es entfernt alle Vektorelemente.

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

Ausgang:

Modifikatoren

Hier ist ein Screenshot des Codes:

Modifikatoren

Code-Erklärung:

  1. Fügen Sie die iostream-Header-Datei in unseren Code ein. Dadurch können wir von der Konsole lesen und darauf schreiben.
  2. Integrieren Sie die Vektor-Headerdatei in unseren Code. Dadurch können wir mit Vektoren arbeiten in C++.
  3. Schließen Sie den std-Namespace ein, um seine Klassen und Funktionen zu verwenden, ohne ihn aufzurufen.
  4. Rufen Sie die Funktion main() auf, in der die Logik des Programms hinzugefügt werden soll.
  5. Das { markiert den Anfang des Hauptteils der main()-Funktion.
  6. Deklarieren Sie einen Vektor namens nums, um eine Reihe von Ganzzahlen zu speichern.
  7. Erstellen Sie eine for-Schleife, die uns bei der Iteration über den Vektor hilft. Die Variable hilft uns, die Vektorelemente ab 1 zu durchlaufenst zu 5th Elemente.
  8. Schieben Sie Elemente von hinten in die Vektornummer. Bei jeder Iteration wird dadurch der aktuelle Wert der Variablen a zum Vektor hinzugefügt, der zwischen 1 und 5 liegt.
  9. Drucken Sie einen Text auf der Konsole
  10. Verwenden Sie eine Iteratorvariable a, um die Elemente von Vektorzahlen vom Anfang bis zum Element hinter dem Ende zu durchlaufen. Beachten Sie, dass wir die Iteratoren vector::begin() und vector::end() verwenden.
  11. Drucken Sie die Werte, auf die die Iteratorvariable an zeigt, für jede Iteration auf der Konsole aus.
  12. Drucken Sie einen Text auf der Konsole. Das \n ist ein Zeichen für eine neue Zeile, das den Cursor in die neue Zeile bewegt, um von dort aus zu drucken.
  13. Verwenden Sie eine Iteratorvariable, um die Elemente von Vektorzahlen vom Anfang bis zum Element hinter dem Ende zu durchlaufen. Beachten Sie, dass wir die Iteratoren vector::cbegin() und vector::cend() verwenden.
  14. Geben Sie für jede Iteration die Werte aus, auf die die Iteratorvariable a auf der Konsole zeigt.
  15. Die Hauptfunktion sollte einen Wert zurückgeben, wenn das Programm erfolgreich ausgeführt wird.
  16. Ende des Hauptteils der main()-Funktion.

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

Ausgang:

Modifikatoren

Hier ist ein Screenshot des Codes:

Modifikatoren

Code-Erklärung:

  1. Fügen Sie die iostream-Header-Datei in unseren Code ein, um ihre Funktionen zu nutzen.
  2. Fügen Sie die Vektor-Header-Datei in unseren Code ein, um sie zu verwenden Funktionen.
  3. Schließen Sie den std-Namespace ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
  4. Rufen Sie die Funktion main() auf. Die Programmlogik sollte in den Hauptteil eingefügt werden.
  5. Der Anfang des Hauptteils der main()-Funktion.
  6. Deklarieren Sie einen Vektor namens nums, um einige ganzzahlige Werte zu speichern.
  7. Speichern Sie 5 Elemente in den Vektorzahlen. Jeweils mit einem Wert von 1.
  8. Drucken Sie einen Text auf der Konsole
  9. Verwenden Sie eine Iteratorvariable a, um über die Elemente von Vektorzahlen zu iterieren.
  10. Drucken Sie die Werte der Vektorzahlen für jede Iteration auf der Konsole aus.
  11. Fügen Sie am Ende der Vektorzahlen den Wert 2 hinzu.
  12. Deklarieren Sie eine ganzzahlige Variable n, um die Größe der Vektorzahlen zu speichern.
  13. Drucken Sie den letzten Wert von Vektorzahlen zusammen mit anderem Text. Es sollte eine 2 zurückgeben.
  14. Entfernen Sie das letzte Element aus den Vektorzahlen. Die 2 wird entfernt.
  15. Text auf der Konsole drucken. Das \n bewegt den Cursor in die neue Zeile, um den Text dort zu drucken.
  16. Verwenden Sie eine Iteratorvariable a, um über die Elemente von Vektorzahlen zu iterieren.
  17. Drucken Sie die Werte der Vektorzahlen für jede Iteration auf der Konsole aus.
  18. Fügen Sie den Wert 7 am Anfang der Vektorzahlen ein.
  19. Gibt den ersten Wert von Vektorzahlen zusammen mit anderem Text aus. Es sollte 7 zurückgeben.
  20. Löschen Sie alle Elemente aus den Vektornummern.
  21. Drucken Sie die Größe der Vektornummer zusammen mit anderem Text aus, nachdem Sie alle Inhalte gelöscht haben. Es sollte 0 zurückgeben.
  22. Ende des Hauptteils der main()-Funktion.

Kapazität

Verwenden Sie die folgenden Funktionen, um die Kapazität eines Vektors zu bestimmen:

  • Größe() -Es gibt die Anzahl der Elemente in einem Vektor zurück.
  • Maximale Größe() -Es gibt die höchste Anzahl an Elementen zurück, die ein Vektor speichern kann.
  • Kapazität () –Es gibt die Menge an Speicherplatz zurück, die einem Vektor zugewiesen ist.
  • Größe ändern () –It Ändert die Größe des Containers so, dass er n Elemente enthält. Wenn die aktuelle Größe des Vektors größer als n ist, werden die hinteren Elemente aus dem Vektor entfernt. Wenn die aktuelle Größe des Vektors kleiner als n ist, werden zusätzliche Elemente an der Rückseite des Vektors hinzugefügt.
  • Empty () –it gibt true zurück, wenn ein Vektor leer ist. Andernfalls wird false zurückgegeben.

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

Ausgang:

Kapazität

Hier ist ein Screenshot des Codes:

Kapazität

Code-Erklärung:

  1. Fügen Sie die iostream-Header-Datei in unseren Code ein, um ihre Funktion zu nutzen.
  2. Fügen Sie die Vektor-Header-Datei in unseren Code ein, um ihre Funktionen zu nutzen.
  3. Fügen Sie den std-Namespace in unseren Code ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
  4. Rufen Sie die Funktion main() auf. Die Programmlogik sollte im Hauptteil dieser Funktion hinzugefügt werden.
  5. Erstellen Sie einen Vektor mit dem Namen vector1, um Ganzzahlen zu speichern.
  6. Verwenden Sie eine for-Schleife, um die Variable x mit Werten von 1 bis 10 zu erstellen.
  7. Schieben Sie die Werte der Variablen x in den Vektor.
  8. Drucken Sie die Größe des Vektors zusammen mit anderem Text auf der Konsole.
  9. Drucken Sie die Kapazität des Vektors zusammen mit anderem Text auf der Konsole aus.
  10. Drucken Sie die maximale Anzahl von Elementen, die der Vektor zusammen mit anderem Text auf der Konsole enthalten kann.
  11. Ändern Sie die Größe des Vektors so, dass er nur noch 5 Elemente enthält.
  12. Drucken Sie die neue Größe des Vektors neben anderem Text.
  13. Prüfen Sie, ob der Vektor nicht leer ist.
  14. Text auf der Konsole drucken, wenn der Vektor nicht leer ist.
  15. Verwenden Sie eine else-Anweisung, um anzugeben, was zu tun ist, wenn der Vektor leer ist.
  16. Text, der auf der Konsole gedruckt werden soll, wenn der Vektor leer ist.
  17. Das Programm muss bei erfolgreichem Abschluss einen Wert zurückgeben.
  18. Ende des main()-Funktionskörpers.

Zusammenfassung

  • A C++ Ein Vektor ist ein dynamisches Array, das seine Größe automatisch anpasst, wenn ein Element hinzugefügt oder daraus gelöscht wird.
  • Die Speicherung eines Vektors erfolgt automatisch durch den Container.
  • Die Elemente eines Vektors werden in einem zusammenhängenden Speicher gespeichert, um auf sie zuzugreifen und sie dann mithilfe von Iteratoren zu durchlaufen.
  • Das Einfügen neuer Daten in einen Vektor erfolgt an dessen Ende.
  • Das Einfügen von Daten in einen Vektor erfordert eine Differenzzeit.
  • Das Entfernen eines Elements aus einem Vektor dauert konstant.
  • Das Einfügen oder Löschen eines Elements am Anfang dauert linear.
  • Beim Umgang mit Datenelementen, die sich ständig ändern, sollten Vektoren verwendet werden.
  • Sie können auch Vektoren verwenden, wenn die Größe der Daten vor Beginn nicht bekannt ist.