Vektor in C++ Standard Template Library (STL) mit Beispiel
Was ist ein C++-Vektor?
Ein C++-Vektor ist ein dynamisches Array, das in der Lage ist, seine Größe automatisch zu ändern. Die Größenänderung erfolgt, nachdem ein Element zum Vektor hinzugefügt oder daraus gelöscht wurde. Die Lagerung erfolgt automatisch durch den Container. Die Elemente eines Vektors werden in einem zusammenhängenden Speicher gespeichert. Dies ermöglicht C++-Programmierern den Zugriff auf die Vektorelemente und deren Traversierung mithilfe von Iteratoren.
Das Einfügen neuer Daten in einen Vektor erfolgt an dessen Ende. Dies dauert 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.
In diesem C++ Tutorial lernen Sie:
- Was ist ein C++-Vektor?
- Wann verwendet man einen Vektor?
- So initialisieren Sie Vektoren in C++
- Iteratoren
- Modifikatoren
- Beispiel 1
- Beispiel 2
- Kapazität
- Beispiel 3
Wann verwendet man einen Vektor?
Unter folgenden Umständen sollte ein C++-Vektor 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 Vektorschlüsselwort.
- 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 ist ein Objekt, das wie ein Zeiger funktioniert. Hier sind die allgemeinen Iteratoren, die von C++-Vektoren unterstützt werden:
- Vektor::begin(): es gibt einen Iterator, der auf das erste Element des Vektors zeigt.
- Vektor::Ende(): es gibt einen Iterator, der auf das letzte Element des Vektors zeigt.
- Vektor::cbegin(): es ist das gleiche wie vector::begin(), aber es kann keine Elemente ändern.
- Vektor::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 üblichen Modifikatoren in C++:
- Vektor::push_back(): Dieser Modifikator drückt die Elemente von hinten.
- Vektor::insert(): Zum Einfügen neuer Elemente in einen Vektor an einer bestimmten Stelle.
- Vektor::pop_back(): Dieser Modifikator entfernt die Vektorelemente von der Rückseite.
- Vektor::erase(): Es wird verwendet, um eine Reihe von Elementen von der angegebenen Position zu entfernen.
- Vektor::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; }
Ausgabe:
Hier ist ein Screenshot des Codes:
Code-Erklärung:
- Fügen Sie die iostream-Header-Datei in unseren Code ein. Es wird uns erlauben, von der Konsole zu lesen und in sie zu schreiben.
- Fügen Sie die Vektor-Header-Datei in unseren Code ein. Es wird uns erlauben, mit Vektoren in C++ zu arbeiten.
- Schließen Sie den std-Namensraum ein, um seine Klassen und Funktionen zu verwenden, ohne ihn aufzurufen.
- Rufen Sie die Funktion main() auf, in der die Logik des Programms hinzugefügt werden soll.
- Das { markiert den Beginn des Hauptteils der main()-Funktion.
- Deklarieren Sie einen Vektor namens nums, um eine Menge von ganzen Zahlen zu speichern.
- Erstellen Sie eine for-Schleife, um uns bei der Iteration über den Vektor zu helfen. Die Variable hilft uns dabei, die Vektorelemente von 1 st zu iterieren bis 5. Elemente.
- Elemente von hinten in den Vektor num schieben. Bei jeder Iteration fügt dies den aktuellen Wert der Variablen a in den Vektor ein, der 1 bis 5 ist.
- Text auf der Konsole ausgeben
- Verwenden Sie eine Iterator-Variable a, um die Elemente von vector nums vom Anfang bis zum letzten Element zu durchlaufen. Beachten Sie, dass wir die Iteratoren vector::begin() und vector::end() verwenden.
- Die Werte, auf die die Iteratorvariable zeigt, für jede Iteration auf der Konsole ausgeben.
- Drucken Sie etwas Text auf der Konsole. Das \n ist ein Zeilenumbruchzeichen, das den Cursor auf die neue Zeile bewegt, um von dort aus zu drucken.
- Verwenden Sie eine Iterator-Variable, um die Elemente von vector nums vom Anfang bis zum letzten Element zu durchlaufen. Beachten Sie, dass wir die Iteratoren vector::cbegin() und vector::cend() verwenden.
- Drucken Sie die Werte, auf die die Iterator-Variable a zeigt, auf der Konsole für jede Iteration.
- Die Hauptfunktion sollte einen Wert zurückgeben, wenn das Programm erfolgreich ausgeführt wird.
- 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(); }
Ausgabe:
Hier ist ein Screenshot des Codes:
Code-Erklärung:
- Fügen Sie die iostream-Header-Datei in unseren Code ein, um ihre Funktionen zu nutzen.
- Fügen Sie die Vektor-Header-Datei in unseren Code ein, um ihre Funktionen zu nutzen.
- Schließen Sie den std-Namespace ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
- Rufen Sie die Funktion main() auf. Die Programmlogik sollte in seinen Körper eingefügt werden.
- Der Anfang des Hauptteils der main()-Funktion.
- Deklarieren Sie einen Vektor namens nums, um einige Integer-Werte zu speichern.
- Speichere 5 Elemente im Vektor nums. Jeweils mit einem Wert von 1.
- Text auf der Konsole ausgeben
- Verwenden Sie eine Iteratorvariable a, um über die Elemente von Vektorzahlen zu iterieren.
- Gib die Werte von Vektorzahlen für jede Iteration auf der Konsole aus.
- Hinzufügen Sie den Wert 2 an das Ende der Vektorzahlen.
- Deklarieren Sie eine Integer-Variable n, um die Größe des Vektors nums zu speichern.
- Den letzten Wert von Vektorzahlen neben anderem Text drucken. Es sollte eine 2 zurückgeben.
- Entferne das letzte Element aus den Vektorzahlen. Die 2 wird entfernt.
- Text auf der Konsole drucken. Das \n bewegt den Cursor in die neue Zeile, um den Text dort zu drucken.
- Verwenden Sie eine Iteratorvariable a, um über die Elemente von Vektorzahlen zu iterieren.
- Gib die Werte von Vektorzahlen für jede Iteration auf der Konsole aus.
- Fügen Sie den Wert 7 am Anfang der Vektorzahlen ein.
- Den ersten Wert von Vektorzahlen neben anderem Text drucken. Es sollte 7 zurückgeben.
- Lösche alle Elemente aus den Vektorzahlen.
- Drucken Sie die Größe der Vektornummer zusammen mit anderem Text, nachdem Sie alle Inhalte gelöscht haben. Es sollte 0 zurückgeben.
- 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.
- Max_size() -Er gibt die höchste Anzahl von Elementen zurück, die ein Vektor speichern kann.
- Kapazität () –Es gibt den Speicherplatz zurück, der einem Vektor zugewiesen ist.
- Resize () –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 auf der Rückseite des Vektors hinzugefügt.
- Leer () –i t 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; }
Ausgabe:
Hier ist ein Screenshot des Codes:
Code-Erklärung:
- Fügen Sie die iostream-Header-Datei in unseren Code ein, um ihre Funktion zu verwenden.
- Fügen Sie die Vektor-Header-Datei in unseren Code ein, um ihre Funktionen zu nutzen.
- Fügen Sie den std-Namespace in unseren Code ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
- Rufen Sie die Funktion main() auf. Die Programmlogik sollte innerhalb des Hauptteils dieser Funktion hinzugefügt werden.
- Erstellen Sie einen Vektor namens Vektor1, um ganze Zahlen zu speichern.
- Verwenden Sie eine for-Schleife, um die Variable x mit Werten von 1 bis 10 zu erstellen.
- Push die Werte der Variablen x in den Vektor.
- Drucken Sie die Größe des Vektors zusammen mit anderem Text auf der Konsole.
- Drucken Sie die Kapazität des Vektors zusammen mit anderem Text auf der Konsole.
- Drucken Sie die maximale Anzahl von Elementen, die der Vektor zusammen mit anderem Text auf der Konsole enthalten kann.
- Ändern Sie die Größe des Vektors so, dass er nur 5 Elemente enthält.
- Drucken Sie die neue Größe des Vektors neben anderem Text.
- Überprüfen Sie, ob der Vektor nicht leer ist.
- Text auf der Konsole ausgeben, wenn der Vektor nicht leer ist.
- Verwenden Sie eine else-Anweisung, um anzugeben, was zu tun ist, wenn der Vektor leer ist.
- Text, der auf der Konsole gedruckt werden soll, wenn der Vektor leer ist.
- Das Programm muss nach erfolgreichem Abschluss einen Wert zurückgeben.
- Ende des Hauptteils der main()-Funktion.
Zusammenfassung:
- Ein C++-Vektor ist ein dynamisches Array, das automatisch seine Größe ändern kann, wenn ein Element hinzugefügt oder daraus gelöscht wird.
- Die Speicherung für einen Vektor erfolgt automatisch durch den Container.
- Die Elemente eines Vektors werden in einem zusammenhängenden Speicher gespeichert, damit auf sie zugegriffen und sie dann mit Iteratoren durchlaufen werden können.
- Das Einfügen neuer Daten in einen Vektor erfolgt an dessen Ende.
- Das Einfügen von Daten in einen Vektor dauert unterschiedlich lange.
- Das Entfernen eines Elements aus einem Vektor dauert konstant.
- Das Einfügen oder Löschen eines Elements am Anfang dauert linear.
- Vektoren sollten verwendet werden, wenn es um Datenelemente geht, die sich ständig ändern.
- Sie können auch Vektoren verwenden, wenn die Größe der Daten vor Beginn nicht bekannt ist.
C Sprache
- C-Standardbibliotheksfunktionen
- Operatoren in C++ mit Beispiel:Was ist, Typen und Programme
- C++ do…while-Schleife mit Beispielen
- C++ Switch Case-Anweisung mit BEISPIEL
- C++ Dynamische Zuordnung von Arrays mit Beispiel
- C++-Zeiger mit Beispielen
- Überladen von C++-Operatoren mit Beispielen
- std::list in C++ mit Beispiel
- C++ Funktionen mit Programmbeispielen
- Unterschied zwischen Struktur und Klasse:Erklärt mit C++-Beispiel