Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C++ Vectors Beheersen: Dynamische Arrays, Iterators en Praktische Voorbeelden

Wat is een C++ Vector?

Een C++ vector is een dynamische array die zich automatisch herschaalt wanneer elementen worden toegevoegd of verwijderd. De elementen worden aaneengesloten opgeslagen, wat snelle geïndexeerde toegang en traversie via iterators mogelijk maakt.

Insertie aan het einde gebeurt in geamortiseerde constante tijd. Het verwijderen van het laatste element is ook constante tijd, terwijl invoegen of wissen aan het begin of midden elementen verschuift, wat resulteert in lineaire tijdscomplexiteit.

Wanneer een Vector Gebruiken?

  • Als je een herbruikbare container nodig hebt voor elementen die in de loop van de tijd veranderen.
  • Als de eindgrootte van de verzameling onbekend is tijdens compile‑tijd.

Hoe Vectors te Initialiseren in C++

std::vector<data‑type> naam (grootte, waarde); // grootte en waarde zijn optioneel 
  • data‑type specificeert het elementtype.
  • naam is de identifier van de vector.
  • De optionele grootte-parameter reserveert ruimte; waarde initialiseert alle elementen.

Iterators

Iterators bieden een pointer‑achtige interface tot vector‑elementen. Veelvoorkomende iterator‑functies zijn:

  • begin() – eerste element.
  • end() – past‑the‑end element.
  • cbegin() – read‑only iterator naar het eerste element.
  • cend() – read‑only iterator voorbij het laatste element.

Modifiers

Modifiers wijzigen de inhoud van de vector. Belangrijke functies zijn:

  • push_back() – voeg een element toe aan het einde.
  • insert() – voeg in op een opgegeven positie.
  • pop_back() – verwijder het laatste element.
  • erase() – verwijder een bereik elementen.
  • clear() – verwijder alle elementen.

Voorbeeld 1: Basis Iteratie

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

Output:

C++ Vectors Beheersen: Dynamische Arrays, Iterators en Praktische Voorbeelden

Voorbeeld 2: Geavanceerde Modifiers

#include <iostream>
#include <vector>
int main() {
    std::vector<int> nums;
    nums.assign(5, 1); // vijf elementen, alle geïnitialiseerd op 1
    std::cout << "Vector contents: ";
    for (size_t i = 0; i < nums.size(); ++i) {
        std::cout << nums[i] << ' ';
    }
    nums.push_back(2);
    std::cout << "\nLast element: " << nums.back();
    nums.pop_back();
    std::cout << "\nVector contents: ";
    for (int a : nums) std::cout << a << ' ';
    nums.insert(nums.begin(), 7);
    std::cout << "\nFirst element: " << nums.front();
    nums.clear();
    std::cout << "\nSize after clear(): " << nums.size();
    return 0;
 } 

Output:

C++ Vectors Beheersen: Dynamische Arrays, Iterators en Praktische Voorbeelden

Capaciteits‑Functies

Bepaal en manipuleer de opslagkenmerken van een vector met de volgende functies:

  • size() – huidig aantal elementen.
  • max_size() – theoretisch maximum aantal elementen.
  • capacity() – toegewezen opslagcapaciteit.
  • resize(n) – wijzig het aantal elementen naar n, toevoegen of verwijderen naar behoefte.
  • empty() – true als de vector geen elementen bevat.

Voorbeeld 3: Capaciteits‑Exploratie

#include <iostream>
#include <vector>
int main() {
    std::vector<int> vector1;
    for (int x = 1; x <= 10; ++x) {
        vector1.push_back(x);
    }
    std::cout << "Vector size: " << vector1.size() << std::endl;
    std::cout << "Vector capacity: " << vector1.capacity() << std::endl;
    std::cout << "Maximum size of vector: " << vector1.max_size() << std::endl;
    vector1.resize(5);
    std::cout << "Vector size after resizing: " << vector1.size() << std::endl;
    if (!vector1.empty())
        std::cout << "Vector is not empty" << std::endl;
    else
        std::cout << "Vector is empty" << std::endl;
    return 0;
 } 

Output:

C++ Vectors Beheersen: Dynamische Arrays, Iterators en Praktische Voorbeelden

Belangrijkste Lessons

  • Een C++ vector is een hoogst efficiënte, automatisch herschaalbare container.
  • Elementen liggen in aaneengesloten geheugen, wat snelle willekeurige toegang geeft.
  • Invoegen en verwijderen aan de achterkant zijn geamortiseerde constante tijd; aan de voorkant of midden lineaire tijd.
  • Vectors zijn ideaal voor scenario's met onvoorspelbare of veranderlijke datagrootte.

C Taal

  1. C Standaardbibliotheek-functies onder de knie krijgen: Een praktische gids
  2. C++ Operators Uitgelegd: Typen, Voorbeelden en Voorbeeldprogramma's
  3. C++ do‑while Lus: Syntaxis, Praktische Voorbeelden en Geneste Lussen
  4. C++ Switch‑Case Onder de Knie: Syntaxis, Gebruik en Praktische Voorbeelden
  5. C++ Dynamische Array‑Allocatie: Praktische Handleiding met Code‑Voorbeelden
  6. C++ Pointers Onder de Knie: Concepten, Voorbeelden & Praktische Toepassingen
  7. C++ Operator Overloading – Praktische Handleiding met Code‑Voorbeelden
  8. C++ Structs Uitgelegd met een Praktisch Voorbeeld
  9. Beheersen van std::list in C++: Syntaxis, Functies & Praktische Voorbeelden
  10. C++ Functies Uitgelegd met Praktische Codevoorbeelden
  11. C++ Struct vs Class: Belangrijkste Verschillen, Syntaxis en Beste Gebruikssituaties