Vektor in C++ Standard Template Library (STL) mit Beispiel
โก Intelligente Zusammenfassung
Vektor in C++ ist ein dynamisches Array aus der Standard Template Library, das seine Grรถรe automatisch anpasst, wenn Elemente hinzugefรผgt oder entfernt werden, und die Elemente im zusammenhรคngenden Speicher speichert, sodass Programmierer mit Hilfe von Iteratoren darauf zugreifen und sie durchlaufen kรถnnen.

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 am Ende des Vektors. Dies erfordert differentielle Zeit. Das Entfernen eines Elements aus einem Vektor benรถtigt konstante Zeit, da der Vektor nicht vergrรถรert oder verkleinert werden muss. Das Einfรผgen oder Entfernen eines Elements am Anfang des Vektors benรถtigt lineare Zeit.
Bevor man Code mit Vektoren schreibt, ist es hilfreich zu wissen, wann sie der richtige Container sind.
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, mรผssen Sie bei diesem Vektor keine maximale Containergrรถรe 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.
- Das Datentyp ist der Datentyp der Elemente, die im Vektor gespeichert werden sollen.
- Das Name ist der Name des Vektors bzw. der Datenelemente.
- Das Artikel Gibt die Anzahl der Elemente des Vektordatensatzes an. Dieser Parameter ist optional.
Sobald ein Vektor existiert, bieten Iteratoren eine zeigerรคhnliche Mรถglichkeit, sich รผber seine Elemente zu bewegen.
Iteratoren
Iteratoren dienen dazu, auf die in einem Vektor gespeicherten Elemente zuzugreifen. Sie sind Objekte, die wie Zeiger funktionieren. Hier sind die gรคngigen, von der Bibliothek unterstรผtzten Iteratoren. 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(), aber es hat nicht die Mรถglichkeit, Elemente zu verรคndern.
- vector::cend(): Es ist dasselbe wie vector::end(), kann aber keine Vektorelemente verรคndern.
Das folgende Beispiel fรผllt einen Vektor und durchlรคuft ihn dann mit verรคnderlichen und konstanten Iteratoren.
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:
Hier ist ein Screenshot des Codes:
Code Erlรคuterung:
- Fรผgen Sie die iostream-Header-Datei in unseren Code ein. Dadurch kรถnnen wir von der Konsole lesen und darauf schreiben.
- Integrieren Sie die Vektor-Headerdatei in unseren Code. Dadurch kรถnnen wir mit Vektoren arbeiten in C++.
- Schlieรen Sie den std-Namespace 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 Anfang des Hauptteils der main()-Funktion.
- Deklarieren Sie einen Vektor namens nums, um eine Reihe von Ganzzahlen zu speichern.
- Wir erstellen eine for-Schleife, um den Vektor zu durchlaufen. Die Variable hilft uns dabei, die Vektorelemente vom ersten bis zum fรผnften Element zu durchlaufen.
- 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.
- Drucken Sie einen Text auf der Konsole.
- 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.
- Geben Sie fรผr jede Iteration die Werte aus, auf die die Iteratorvariable a auf der Konsole zeigt.
- 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.
- Verwenden Sie eine Iteratorvariable, um die Elemente des Vektors `nums` vom Anfang bis zum letzten Element zu durchlaufen. Beachten Sie, dass wir die Iteratoren `vector::cbegin()` und `vector::cend()` verwenden.
- Geben Sie fรผr jede Iteration die Werte aus, auf die die Iteratorvariable a auf der Konsole zeigt.
- Die Hauptfunktion sollte einen Wert zurรผckgeben, wenn das Programm erfolgreich ausgefรผhrt wird.
- Ende des Hauptteils der main()-Funktion.
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.
Im nรคchsten Beispiel werden diese Modifikatoren nacheinander angewendet, um zu sehen, wie sich ein Vektor verรคndert.
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:
Hier ist ein Screenshot des Codes:
Code Erlรคuterung:
- 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 den Hauptteil eingefรผgt werden.
- Der Anfang des Hauptteils der main()-Funktion.
- Deklarieren Sie einen Vektor namens nums, um einige ganzzahlige Werte zu speichern.
- Speichern Sie 5 Elemente in den Vektorzahlen. Jeweils mit einem Wert von 1.
- Drucken Sie einen Text auf der Konsole.
- Verwenden Sie eine Iteratorvariable a, um รผber die Elemente von Vektorzahlen zu iterieren.
- Drucken Sie die Werte der Vektorzahlen fรผr jede Iteration auf der Konsole aus.
- Fรผgen Sie am Ende der Vektorzahlen den Wert 2 hinzu.
- Deklarieren Sie eine ganzzahlige Variable n, um die Grรถรe der Vektorzahlen zu speichern.
- Drucken Sie den letzten Wert von Vektorzahlen zusammen mit anderem Text. Es sollte eine 2 zurรผckgeben.
- Entfernen Sie 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.
- Drucken Sie die Werte der Vektorzahlen fรผr jede Iteration auf der Konsole aus.
- Fรผgen Sie den Wert 7 am Anfang der Vektorzahlen ein.
- Gibt den ersten Wert von Vektorzahlen zusammen mit anderem Text aus. Es sollte 7 zurรผckgeben.
- Lรถschen Sie alle Elemente aus den Vektornummern.
- Drucken Sie die Grรถรe der Vektornummer zusammen mit anderem Text aus, nachdem Sie alle Inhalte gelรถscht haben. Es sollte 0 zurรผckgeben.
- Ende des Hauptteils der main()-Funktion.
Kapazitรคt
Verwenden Sie Folgendes 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 von Elementen zurรผck, die ein Vektor speichern kann.
- Kapazitรคt() โ Es gibt die Menge an Speicherplatz zurรผck, die einem Vektor zugewiesen wurde.
- Grรถรe รคndern() โ Der Container wird so vergrรถรert, dass er n Elemente aufnehmen kann. Ist die aktuelle Vektorgrรถรe grรถรer als n, werden die hinteren Elemente entfernt. Ist die aktuelle Vektorgrรถรe kleiner als n, werden zusรคtzliche Elemente am Ende des Vektors hinzugefรผgt.
- Leer() โ Die Funktion gibt โtrueโ zurรผck, wenn ein Vektor leer ist. Andernfalls gibt sie โfalseโ zurรผck.
Dieses letzte Beispiel gibt Auskunft รผber die Speicherung eines Vektors und passt diese mithilfe der oben genannten Kapazitรคtsfunktionen an.
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:
Hier ist ein Screenshot des Codes:
Code Erlรคuterung:
- Fรผgen Sie die iostream-Header-Datei in unseren Code ein, um ihre Funktion zu nutzen.
- 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 im Hauptteil dieser Funktion hinzugefรผgt werden.
- Erstellen Sie einen Vektor mit dem Namen vector1, um Ganzzahlen zu speichern.
- Verwenden Sie eine for-Schleife, um die Variable x mit Werten von 1 bis 10 zu erstellen.
- Schieben Sie 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 aus.
- 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 noch 5 Elemente enthรคlt.
- Drucken Sie die neue Grรถรe des Vektors neben anderem Text.
- Prรผfen Sie, ob der Vektor nicht leer ist.
- Text auf der Konsole drucken, 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 bei erfolgreichem Abschluss einen Wert zurรผckgeben.
- Ende des main()-Funktionskรถrpers.





