logo

Vector de vectori în C++ STL cu exemple

Condiție preliminară: Vectori în C++ STL

Vectori sunt cunoscute sub numele de matrice dinamice cu capacitatea de a se redimensiona automat atunci când un element este inserat sau șters, stocarea lor fiind gestionată automat de container.



Vector de vectori este o vector bidimensional cu un număr variabil de rânduri unde fiecare rând este vector. Fiecare index de vector stochează un vector care poate fi parcurs și accesat folosind iteratoare . Este similar cu o Matrice de vectori dar cu proprietăţi dinamice.

Sintaxă:

vector vec;>

Exemplu:



matrice sortată în java
 vector vec{ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9, 4 } }; where vec is the vector of vectors with different number of elements in different rows>

Inserarea în Vector de Vectori

Elementele pot fi inserate într-un vector folosind împinge înapoi() funcția C++ STL.

Exemplul de mai jos demonstrează operația de inserare într-un vector de vectori. Codul creează un vector 2D utilizând funcția push_back() și apoi afișează matricea.



Sintaxă:

vector_name.push_back(value) where value refers to the element to be added in the back of the vector>

Exemplul 1:

 v2 = {1, 2, 3} v1.push_back(v2);>

Această funcție împinge vectorul v2 în vectorul vectorilor v1. Prin urmare, v1 devine {{1, 2, 3} }.

Exemplul 2:

 v2 = {4, 5, 6} v1.push_back(v2);>

Această funcție împinge vectorul v2 în vectorul existent al vectorilor v1 și v1 devine v1 = { {1, 2, 3}, {4, 5, 6} }

dacă altfel dacă java

Mai jos este exemplul pentru a demonstra inserția într-un vector de vectori.




// C++ program to demonstrate insertion> // into a vector of vectors> > #include> #include> using> namespace> std;> > // Defining the rows and columns of> // vector of vectors> #define ROW 4> #define COL 5> > int> main()> {> >// Initializing the vector of vectors> >vectorint>> vec; // Elemente de inserat în coloana int num = 10; // Inserarea elementelor în vector pentru (int i = 0; i // Vector pentru a stoca vectorul elementelor coloanei v1; for (int j = 0; j v1.push_back(num); num += 5; } // Împingerea înapoi deasupra vectorului 1D // pentru a crea vectorul 2D vec.push_back(v1); } // Afișarea vectorului 2D pentru (int i = 0; i pentru (int j = 0; j cout<< vec[i][j] << ' '; cout << endl; } return 0; }>

>

>

Ieșire:

 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105>

Îndepărtarea sau ștergerea într-un vector de vectori

Elementele pot fi eliminate dintr-un vector de vectori folosind pop_back() funcția C++ STL.

Exemplul de mai jos demonstrează operația de îndepărtare într-un vector de vectori. Codul elimină elemente dintr-un vector 2D utilizând funcția pop_back() și apoi afișează matricea.
Sintaxă:

vector_name[row_position].pop_back()>

Exemplul 1: Fie vectorul vectorilor vector v = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }

 v[2].pop_back()>

Această funcție elimină elementul 9 din ultimul vector rând. Prin urmare, v devine { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8 } }.

Exemplul 2:

ce este un sistem de fișiere linux
 v[1].pop_back()>

Această funcție elimină elementul 6 din ultimul vector al doilea rând. Prin urmare, v devine { { 1, 2, 3 }, { 4, 5 }, { 7, 8 } }.

Mai jos este exemplul pentru a demonstra îndepărtarea dintr-un vector de vectori.




// C++ program to demonstrate removal> // from a vector of vectors> > #include> #include> using> namespace> std;> > // Driver Method> int> main()> {> >// Initializing 2D vector 'vect' with> >// sample values> >vectorint>> vec{ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; // Eliminarea elementelor din // ultimul rând al vectorului vec[2].pop_back(); vec[1].pop_back(); // Afișarea vectorului 2D pentru (int i = 0; i<3; i++) { for ( auto it = vec[i].begin(); it != vec[i].end(); it++) cout << *it << ' '; cout << endl; } return 0; }>

sfârșitul java

>

>

Ieșire:

 1 2 3 4 5 7 8>

Traversarea unui vector de vectori

Vectorul vectorilor poate fi parcurs folosind iteratoare în C++. Următorul cod demonstrează traversarea unui vector 2D.

Sintaxă:

 for i in [0, n) { for (iterator it = v[i].begin(); it != v[i].end(); it++) { // Operations to be done // For example to print print(*it) } }>

Mai jos este exemplul pentru a demonstra traversarea într-un vector de vectori.




// C++ code to demonstrate traversal> // of a 2D vector> > #include> #include> using> namespace> std;> > // Driver Method> int> main()> {> >// Initializing 2D vector 'vect' with> >// sample values> >vectorint>> vec{ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; // Afișarea vectorului 2D pentru (int i = 0; i<3; i++) { for ( auto it = vec[i].begin(); it != vec[i].end(); it++) cout << *it << ' '; cout << endl; } return 0; }>

java iese din buclă
>

>

Ieșire:

 1 2 3 4 5 6 7 8 9>