Vector în C++ Bibliotecă de șabloane standard (STL) cu exemplu
⚡ Rezumat inteligent
Vector în C++ este o matrice dinamică din Biblioteca de șabloane standard care se redimensionează automat pe măsură ce elementele sunt adăugate sau eliminate, stocând elementele în memoria contiguă, astfel încât programatorii să le poată accesa și parcurge folosind iteratori.

Ce este a C++ Vector?
A C++ Vector este o matrice dinamică capabilă să se redimensioneze automat. Redimensionarea are loc după ce un element a fost adăugat sau șters din vector. Depozitarea este gestionată automat de container. Elementele unui vector sunt stocate în stocare contiguă. Acest lucru permite C++ programatori să acceseze și să traverseze elementele vectoriale folosind iteratoare.
Inserarea de noi date într-un vector se face la sfârșitul acestuia. Aceasta necesită un timp diferențial. Eliminarea unui element dintr-un vector necesită un timp constant. Motivul este că nu este nevoie să se redimensioneze vectorul. Inserarea sau ștergerea unui element la începutul vectorului necesită timp liniar.
Înainte de a scrie cod cu vectori, este util să știi când aceștia sunt containerul potrivit pentru a fi accesați.
Când să folosiți un vector?
A C++ vectorul trebuie utilizat în următoarele circumstanțe:
- Când aveți de-a face cu elemente de date care se modifică constant.
- Dacă dimensiunea datelor nu este cunoscută înainte de începere, vectorul nu va necesita setarea dimensiunii maxime a containerului.
Cum să inițializați vectorii în C++
Sintaxa vectorilor în C++ este:
vector <data-type> name (items)
După cum se arată mai sus, începem cu cuvântul cheie vector.
- tip de date este tipul de date al elementelor care vor fi stocate în vector.
- nume este numele vectorului sau al elementelor de date.
- articole reprezintă numărul de elemente pentru datele vectoriale. Acest parametru este opțional.
Odată ce un vector există, iteratorii vă oferă o modalitate asemănătoare unui pointer de a vă deplasa printre elementele sale.
Iteratori
Scopul iteratorilor este de a ne ajuta să accesăm elementele stocate într-un vector. Este un obiect care funcționează ca un pointer. Iată iteratorii comuni acceptați de C++ vectori:
- vector::begin(): oferă un iterator care indică primul element al vectorului.
- vector::end(): oferă un iterator care indică elementul trecut-sfârșitul vectorului.
- vector::cbegin(): Este la fel ca vector::begin(), dar nu are capacitatea de a modifica elemente.
- vector::cend(): Este la fel ca vector::end(), dar nu poate modifica elementele vectoriale.
Următorul exemplu populează un vector și apoi îl parcurge cu iteratori atât mutabili, cât și constanți.
Exemplu 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; }
ieșire:
Iată o captură de ecran a codului:
Code Explicaţie:
- Includeți fișierul antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
- Includeți fișierul antet vectorial în codul nostru. Ne va permite să lucrăm cu vectori în C++.
- Includeți spațiul de nume std pentru a utiliza clasele și funcțiile sale fără a-l apela.
- Apelați funcția main() în interiorul căreia ar trebui adăugată logica programului.
- { marchează începutul corpului funcției main().
- Declarați un vector numit nums pentru a stoca un set de numere întregi.
- Creați o buclă for care să ne ajute să iterăm peste vector. Variabila ne va ajuta să iterăm peste elementele vectorului, de la primul la al cincilea element.
- Împingeți elementele în vectorul num din spate. Pentru fiecare iterație, aceasta va adăuga valoarea curentă a variabilei a în vector, care este de la 1 la 5.
- Tipăriți ceva text pe consolă.
- Utilizați o variabilă iteratoare a pentru a itera elementele numerelor vectoriale de la început până la elementul trecut-sfârșit. Rețineți că folosim iteratorii vector::begin() și vector::end().
- Imprimați valorile indicate de variabila iteratoare a pe consolă pentru fiecare iterație.
- Tipăriți ceva text pe consolă. \n este un caracter de linie nouă, deplasând cursorul pe noua linie pentru a imprima de acolo.
- Folosește o variabilă iteratoare pentru a itera peste elementele vectorului nums de la început până la elementul de după sfârșit. Reține că folosim iteratorii vector::cbegin() și vector::cend().
- Imprimați valorile indicate de variabila iteratoare a pe consolă pentru fiecare iterație.
- Funcția principală ar trebui să returneze o valoare dacă programul rulează cu succes.
- Sfârșitul corpului funcției main().
Modificatorii
Modificatorii sunt utilizați pentru modificarea semnificației tipului de date specificat. Iată modificatorii obișnuiți în C++:
- vector::push_back(): Acest modificator împinge elementele din spate.
- vector::insert(): Pentru inserarea de elemente noi într-un vector într-o locație specificată.
- vector::pop_back(): Acest modificator elimină elementele vectoriale din spate.
- vector::erase(): Este folosit pentru a elimina o serie de elemente din locația specificată.
- vector::clear(): Îndepărtează toate elementele vectoriale.
Următorul exemplu aplică acești modificatori în secvență pentru a vedea cum se modifică un vector.
Exemplu 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(); }
ieșire:
Iată o captură de ecran a codului:
Code Explicaţie:
- Includeți fișierul antet iostream în codul nostru pentru a utiliza funcțiile acestuia.
- Includeți fișierul antet vectorial în codul nostru pentru a utiliza funcțiile acestuia.
- Includeți spațiul de nume std pentru a-și folosi clasele fără a-l apela.
- Apelați funcția main(). Logica programului ar trebui adăugată în corpul său.
- Începutul corpului funcției main().
- Declarați un vector numit nums pentru a stoca niște valori întregi.
- Stocați 5 elemente în numerele vectoriale. Fiecare cu o valoare de 1.
- Tipăriți ceva text pe consolă.
- Utilizați o variabilă iteratoare a pentru a itera elementele vectorului nums.
- Tipăriți valorile numerelor vectoriale pe consolă pentru fiecare iterație.
- Adăugați valoarea 2 la sfârșitul vectorului nums.
- Declarați o variabilă întreagă n pentru a stoca dimensiunea numerelor vectoriale.
- Tipăriți ultima valoare a numerelor vectoriale alături de alt text. Ar trebui să returneze un 2.
- Eliminați ultimul element din vector nums. Cele 2 vor fi eliminate.
- Imprimați textul pe consolă. \n mută cursorul pe noua linie pentru a imprima textul acolo.
- Utilizați o variabilă iteratoare a pentru a itera elementele vectorului nums.
- Tipăriți valorile numerelor vectoriale pe consolă pentru fiecare iterație.
- Introduceți valoarea 7 la începutul vectorului nums.
- Tipăriți prima valoare a numerelor vectoriale alături de alt text. Ar trebui să revină 7.
- Ștergeți toate elementele din vector nums.
- Tipăriți dimensiunea vectorului num alături de alt text după ștergerea întregului conținut. Ar trebui să returneze 0.
- Sfârșitul corpului funcției main().
Capacitate
Foloseste urmatoarele funcții Pentru a determina capacitatea unui vector:
- Dimensiune() – Returnează numărul de elemente dintr-un vector.
- Dimensiune_max.() – Returnează cel mai mare număr de elemente pe care un vector le poate stoca.
- Capacitate() – Returnează cantitatea de spațiu de stocare alocat unui vector.
- Redimensionare() – Redimensionează containerul pentru a conține n elemente. Dacă dimensiunea curentă a vectorului este mai mare decât n, elementele din spate vor fi eliminate din vector. Dacă dimensiunea curentă a vectorului este mai mică decât n, elemente suplimentare vor fi adăugate în spatele vectorului.
- Gol() – returnează „true” dacă un vector este gol. În caz contrar, returnează „false”.
Acest ultim exemplu raportează și ajustează stocarea unui vector folosind funcțiile de capacitate de mai sus.
Exemplu 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; }
ieșire:
Iată o captură de ecran a codului:
Code Explicaţie:
- Includeți fișierul antet iostream în codul nostru pentru a utiliza funcția acestuia.
- Includeți fișierul antet vectorial în codul nostru pentru a utiliza funcțiile acestuia.
- Includeți spațiul de nume std în codul nostru pentru a-i folosi clasele fără a-l apela.
- Apelați funcția main(). Logica programului ar trebui adăugată în corpul acestei funcții.
- Creați un vector numit vector1 pentru a stoca numere întregi.
- Utilizați o buclă for pentru a crea variabila x cu valori de la 1 la 10.
- Împingeți valorile variabilei x în vector.
- Imprimați dimensiunea vectorului alături de alt text de pe consolă.
- Tipăriți capacitatea vectorului alături de alt text de pe consolă.
- Imprimați numărul maxim de elemente pe care vectorul le poate păstra alături de alt text pe consolă.
- Redimensionați vectorul pentru a conține doar 5 elemente.
- Tipăriți noua dimensiune a vectorului alături de alt text.
- Verificați dacă vectorul nu este gol.
- Tipăriți text pe consolă dacă vectorul nu este gol.
- Utilizați o instrucțiune else pentru a spune ce trebuie făcut dacă vectorul este gol.
- Text de tipărit pe consolă dacă vectorul este gol.
- Programul trebuie să returneze valoare după finalizarea cu succes.
- Sfârșitul corpului funcției main().





