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

Inhaltsverzeichnis:

Anonim

Was ist ein C ++ - Vektor?

Ein C ++ - VEKTOR 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 Lagerung erfolgt automatisch durch den Container. Die Elemente eines Vektors werden in einem zusammenhängenden Speicher gespeichert. Dadurch können C ++ - Programmierer mithilfe von Iteratoren auf die Vektorelemente zugreifen und diese durchlaufen.

Das Einfügen neuer Daten in einen Vektor erfolgt am Ende. Dies dauert eine unterschiedliche Zeit. 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 soll ein Vektor verwendet werden?
  • So initialisieren Sie Vektoren in C ++
  • Iteratoren
  • Modifikatoren
  • Beispiel 1
  • Beispiel 2
  • Kapazität
  • Beispiel 3

Wann soll ein Vektor verwendet werden?

Ein C ++ - Vektor sollte unter 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 für den Vektor nicht die maximale Größe des Containers festlegen.

So initialisieren Sie Vektoren in C ++

Die Syntax von Vektoren in C ++ lautet:

vector  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 bezeichnen die Anzahl der Elemente für die Daten des Vektors. Dieser Parameter ist optional.

Iteratoren

Der Zweck von Iteratoren besteht darin, uns den Zugriff auf die in einem Vektor gespeicherten Elemente zu erleichtern. Es ist ein Objekt, das wie ein Zeiger funktioniert. Hier sind die allgemeinen Iteratoren, die von C ++ - Vektoren unterstützt werden:

  • vector :: begin (): Gibt einen Iterator an, der auf das erste Element des Vektors zeigt.
  • vector :: end (): Gibt einen Iterator an, der auf das Past-the-End-Element des Vektors zeigt.
  • vector :: cbegin (): Es ist dasselbe wie vector :: begin (), kann jedoch keine Elemente ändern.
  • vector :: cend (): Es ist dasselbe wie vector :: end (), kann jedoch keine Vektorelemente ändern.

Modifikatoren

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

  • vector :: push_back (): Dieser Modifikator schiebt 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 (): Wird verwendet, um einen Bereich von Elementen von der angegebenen Position zu entfernen.
  • vector :: clear (): Entfernt alle Vektorelemente.

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

Ausgabe:

Hier ist ein Screenshot des Codes:

Code Erläuterung:

  1. Fügen Sie die iostream-Header-Datei in unseren Code ein. Dadurch können wir von der Konsole lesen und darauf schreiben.
  2. Fügen Sie die Vektor-Header-Datei in unseren Code ein. Es wird uns ermöglichen, mit Vektoren in C ++ zu arbeiten.
  3. Fügen Sie den Standard-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 Beginn des Körpers der main () - Funktion.
  6. Deklarieren Sie einen Vektor mit dem Namen nums, um eine Reihe von Ganzzahlen zu speichern.
  7. Erstellen Sie eine for-Schleife, damit wir den Vektor durchlaufen können. Die Variable wird uns helfen Iterierte über die Vektorelemente, 1 st bis 5 th Elemente.
  8. Schieben Sie Elemente von hinten in die Vektornummer. Für jede Iteration wird der aktuelle Wert der Variablen a zum Vektor addiert, der 1 bis 5 beträgt.
  9. Drucken Sie Text auf der Konsole
  10. Verwenden Sie eine Iteratorvariable a, um die Elemente von Vektornummern vom Anfang bis zum Ende des Elements 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 Text auf der Konsole. Das \ n ist ein neues Zeilenzeichen, das den Cursor auf die neue Zeile bewegt, um von dort aus zu drucken.
  13. Verwenden Sie eine Iteratorvariable, um die Elemente von Vektornummern vom Anfang bis zum Ende des Elements zu durchlaufen. Beachten Sie, dass wir die Iteratoren vector :: cbegin () und vector :: cend () verwenden.
  14. Drucken Sie die Werte, auf die die Iteratorvariable a zeigt, für jede Iteration auf der Konsole.
  15. Die Hauptfunktion sollte einen Wert zurückgeben, wenn das Programm erfolgreich ausgeführt wird.
  16. Ende des Körpers der main () - Funktion.

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

Ausgabe:

Hier ist ein Screenshot des Codes:

Code Erläuterung:

  1. Fügen Sie die iostream-Headerdatei in unseren Code ein, um ihre Funktionen zu nutzen.
  2. Fügen Sie die Vektor-Header-Datei in unseren Code ein, um ihre Funktionen zu verwenden.
  3. Fügen Sie den Standard-Namespace ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
  4. Rufen Sie die Funktion main () auf. Die Programmlogik sollte in ihrem Körper hinzugefügt werden.
  5. Der Beginn des Körpers der main () - Funktion.
  6. Deklarieren Sie einen Vektor mit dem Namen nums, um einige ganzzahlige Werte zu speichern.
  7. Speichern Sie 5 Elemente in den Vektornummern. Jeweils mit einem Wert von 1.
  8. Drucken Sie Text auf der Konsole
  9. Verwenden Sie eine Iteratorvariable a, um über die Elemente von Vektornummern zu iterieren.
  10. Drucken Sie die Werte der Vektornummern für jede Iteration auf der Konsole aus.
  11. Addieren Sie den Wert 2 am Ende der Vektornummern.
  12. Deklarieren Sie eine Ganzzahlvariable n, um die Größe der Vektornummern zu speichern.
  13. Drucken Sie den letzten Wert der Vektornummern neben anderem Text. Es sollte eine 2 zurückgeben.
  14. Entfernen Sie das letzte Element aus den Vektornummern. Die 2 wird entfernt.
  15. Drucken Sie Text auf der Konsole. 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 Vektornummern zu iterieren.
  17. Drucken Sie die Werte der Vektornummern für jede Iteration auf der Konsole aus.
  18. Fügen Sie den Wert 7 am Anfang der Vektornummern ein.
  19. Drucken Sie den ersten Wert der Vektornummern neben anderem Text. Es sollte 7 zurückgeben.
  20. Löschen Sie alle Elemente aus den Vektornummern.
  21. Drucken Sie die Größe der Vektornummer neben anderem Text aus, nachdem Sie den gesamten Inhalt gelöscht haben. Es sollte 0 zurückgeben.
  22. Ende des Körpers der main () - Funktion.

Kapazität

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

  • Size () - Gibt die Anzahl der Elemente in einem Vektor zurück.
  • Max_size () - Gibt die höchste Anzahl von Elementen zurück, die ein Vektor speichern kann.
  • Capacity () - Gibt den einem Vektor zugewiesenen Speicherplatz zurück.
  • Resize () - Ä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.
  • Empty () -i t gibt true zurück, wenn ein Vektor leer ist, andernfalls false.

Beispiel 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"<

Ausgabe:

Hier ist ein Screenshot des Codes:

Code Erläuterung:

  1. Fügen Sie die iostream-Headerdatei in unseren Code ein, um ihre Funktion zu verwenden.
  2. Fügen Sie die Vektor-Header-Datei in unseren Code ein, um ihre Funktionen zu verwenden.
  3. Fügen Sie den Standard-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 eine 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 neben anderem Text auf der Konsole.
  9. Drucken Sie die Kapazität des Vektors neben anderem Text auf der Konsole.
  10. Drucken Sie die maximale Anzahl von Elementen, die der Vektor neben anderem Text auf der Konsole enthalten kann.
  11. Ändern Sie die Größe des Vektors so, dass nur 5 Elemente enthalten sind.
  12. Drucken Sie die neue Größe des Vektors neben anderem Text.
  13. Überprüfen Sie, ob der Vektor nicht leer ist.
  14. Drucken Sie Text auf der Konsole, 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 nach erfolgreichem Abschluss einen Wert zurückgeben.
  18. Ende des Hauptfunktionskörpers ().

Zusammenfassung:

  • Ein C ++ - Vektor ist ein dynamisches Array, dessen Größe sich automatisch ändern kann, wenn ein Element hinzugefügt oder daraus gelöscht wird.
  • Die Speicherung eines Vektors wird vom Container automatisch übernommen.
  • Die Elemente eines Vektors werden in einem zusammenhängenden Speicher gespeichert, um auf sie zuzugreifen, und dann unter Verwendung von Iteratoren durchlaufen.
  • Das Einfügen neuer Daten in einen Vektor erfolgt am 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 Datenelemente behandelt werden, die sich konsistent ändern.
  • Sie können auch Vektoren verwenden, wenn die Größe der Daten vor Beginn nicht bekannt ist.