Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C++ Vectors meistern: Dynamische Arrays, Iteratoren & Praxisbeispiele

Was ist ein C++ Vector?

C++ Vector ist ein dynamisches Array, das sich automatisch vergrößert oder verkleinert, wenn Elemente hinzugefügt oder entfernt werden. Seine Elemente liegen zusammenhängend im Speicher, was schnellen indizierten Zugriff und Durchlauf via Iteratoren ermöglicht.

Einfügen am Ende erfolgt in amortisierter konstanter Zeit. Entfernen des letzten Elements ist ebenfalls konstant, während Einfügen oder Löschen am Anfang oder in der Mitte lineare Zeit erfordert, da Elemente verschoben werden müssen.

Wann einen Vector verwenden?

  • Wenn Sie einen veränderlichen Container für Elemente benötigen, deren Anzahl sich zur Laufzeit ändert.
  • Wenn die finale Größe der Sammlung zur Compile‑Zeit unbekannt ist.

Vektoren in C++ initialisieren

std::vector<datentyp> name (groesse, wert); // groesse und wert sind optional
  • datentyp legt den Elementtyp fest.
  • name ist der Bezeichner des Vektors.
  • Optionaler Parameter groesse reserviert Speicher; wert initialisiert alle Elemente.

Iteratoren

Iteratoren bieten eine zeigerähnliche Schnittstelle zu Vektorelementen. Häufige Iterator‑Funktionen:

  • begin() – erstes Element.
  • end() – Element hinter dem letzten (past‑the‑end).
  • cbegin() – Read‑only‑Iterator zum ersten Element.
  • cend() – Read‑only‑Iterator hinter dem letzten Element.

Modifizierer

Modifizierer ändern den Vektoreninhalt. Wichtige Funktionen:

  • push_back() – Element am Ende anhängen.
  • insert() – An angegebener Position einfügen.
  • pop_back() – Letztes Element entfernen.
  • erase() – Elementbereich löschen.
  • clear() – Alle Elemente entfernen.

Beispiel 1: Grundlegende Iteration

#include <iostream>
#include <vector>
int main() {
    std::vector<int> nums;
    for (int a = 1; a <= 5; ++a) {
        nums.push_back(a);
    }
    std::cout << "Ausgabe von begin bis end: ";
    for (auto it = nums.begin(); it != nums.end(); ++it) {
        std::cout << *it << ' ';
    }
    std::cout << "\nAusgabe von cbegin bis cend: ";
    for (auto it = nums.cbegin(); it != nums.cend(); ++it) {
        std::cout << *it << ' ';
    }
    return 0;
}

Ausgabe:

C++ Vectors meistern: Dynamische Arrays, Iteratoren & Praxisbeispiele

Beispiel 2: Fortgeschrittene Modifizierer

#include <iostream>
#include <vector>
int main() {
    std::vector<int> nums;
    nums.assign(5, 1); // fünf Elemente, alle mit 1 initialisiert
    std::cout << "Vektorinhalt: ";
    for (size_t i = 0; i < nums.size(); ++i) {
        std::cout << nums[i] << ' ';
    }
    nums.push_back(2);
    std::cout << "\nLetztes Element: " << nums.back();
    nums.pop_back();
    std::cout << "\nVektorinhalt: ";
    for (int a : nums) std::cout << a << ' ';
    nums.insert(nums.begin(), 7);
    std::cout << "\nErstes Element: " << nums.front();
    nums.clear();
    std::cout << "\nGröße nach clear(): " << nums.size();
    return 0;
}

Ausgabe:

C++ Vectors meistern: Dynamische Arrays, Iteratoren & Praxisbeispiele

Kapazitäts‑Funktionen

Speichereigenschaften eines Vektors ermitteln und steuern:

  • size() – aktuelle Elementanzahl.
  • max_size() – theoretisches Maximum an Elementen.
  • capacity() – allokierte Speicherkapazität.
  • resize(n) – Elementanzahl auf n ändern, Elemente hinzufügen/entfernen.
  • empty() – true, wenn Vektor leer.

Beispiel 3: Kapazität erkunden

#include <iostream>
#include <vector>
int main() {
    std::vector<int> vector1;
    for (int x = 1; x <= 10; ++x) {
        vector1.push_back(x);
    }
    std::cout << "Vektorgröße: " << vector1.size() << std::endl;
    std::cout << "Vektorkapazität: " << vector1.capacity() << std::endl;
    std::cout << "Maximale Vektorgröße: " << vector1.max_size() << std::endl;
    vector1.resize(5);
    std::cout << "Vektorgröße nach Resize: " << vector1.size() << std::endl;
    if (!vector1.empty())
        std::cout << "Vektor ist nicht leer" << std::endl;
    else
        std::cout << "Vektor ist leer" << std::endl;
    return 0;
}

Ausgabe:

C++ Vectors meistern: Dynamische Arrays, Iteratoren & Praxisbeispiele

Kernpunkte

  • Ein C++ Vector ist ein hocheffizienter, automatisch skalierbarer Container.
  • Elemente liegen in zusammenhängendem Speicher → schneller Zufallszugriff.
  • Einfügen/Entfernen am Ende: amortisiert O(1); am Anfang/In der Mitte: O(n).
  • Vektoren sind ideal für Szenarien mit unvorhersehbaren oder sich ändernden Datengrößen.

C Sprache

  1. C-Standardbibliothek-Funktionen meistern: Praxisleitfaden
  2. C++ Operatoren erklärt: Typen, Beispiele und Beispielprogramme
  3. C++ do‑while‑Schleife: Syntax, Praxisbeispiele und verschachtelte Schleifen
  4. C++ switch‑case meistern: Syntax, Einsatz und Praxisbeispiele
  5. C++ Dynamische Array‑Allokation: Praktischer Leitfaden mit Code‑Beispielen
  6. C++ Zeiger meistern: Konzepte, Beispiele & praktische Anwendungen
  7. C++ Operator‑Overloading: Praktischer Leitfaden mit Code‑Beispielen
  8. std::list in C++ meistern: Syntax, Funktionen & praktische Beispiele
  9. C++-Funktionen erklärt: Mit praktischen Code-Beispielen
  10. C++ Struct vs. Class: Wichtige Unterschiede, Syntax und beste Anwendungsfälle