logo

Vektor vektorů v C++ STL s příklady

Předpoklad: Vektory v C++ STL

vektory jsou známá jako dynamická pole se schopností automaticky změnit velikost při vložení nebo odstranění prvku, přičemž jejich ukládání je automaticky řešeno kontejnerem.



Vektor vektorů je dvourozměrný vektor s proměnným počtem řádků, kde každý řádek je vektorový. Každý index vektoru ukládá vektor, který lze procházet a přistupovat k němu pomocí iterátory . Je to podobné jako an Pole vektorů ale s dynamickými vlastnostmi.

Syntax:

vector vec;>

Příklad:



 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>

Vložení vektorů do vektoru

Prvky lze do vektoru vkládat pomocí zatlačit zpátky() funkce C++ STL.

Níže uvedený příklad demonstruje operaci vkládání do vektoru vektorů. Kód vytvoří 2D vektor pomocí funkce push_back() a poté zobrazí matici.



Syntax:

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

Příklad 1:

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

Tato funkce vloží vektor v2 do vektoru vektorů v1. Proto se v1 stává { {1, 2, 3} }.

Příklad 2:

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

Tato funkce vloží vektor v2 do existujícího vektoru vektorů v1 a v1 se stane v1 = { {1, 2, 3}, {4, 5, 6} }

dhl znamená co

Níže je uveden příklad pro demonstraci vkládání vektorů do vektoru.




// 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; // Prvky pro vložení do sloupce int num = 10; // Vkládání prvků do vektoru for (int i = 0; i // Vektor pro uložení prvků sloupce vector v1; for (int j = 0; j v1.push_back(num); num += 5; } // Přesunutí zpět nad 1D vektor // pro vytvoření 2D vektoru vec.push_back(v1); } // Zobrazení 2D vektoru pro (int i = 0; i pro (int j = 0; j cout<< vec[i][j] << ' '; cout << endl; } return 0; }>

>

algoritmus pro bfs
>

Výstup:

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

Odstranění nebo vymazání ve vektoru vektorů

Prvky mohou být odstraněny z vektoru vektorů pomocí pop_back() funkce C++ STL.

Níže uvedený příklad demonstruje operaci odstranění ve vektoru vektorů. Kód odstraní prvky z 2D vektoru pomocí funkce pop_back() a poté zobrazí matici.
Syntax:

vector_name[row_position].pop_back()>

Příklad 1: Nechť vektor vektorů je vektor v = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }

 v[2].pop_back()>

Tato funkce odstraní prvek 9 z vektoru posledního řádku. Proto v se stává { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8 } }.

Příklad 2:

název speciálních znaků
 v[1].pop_back()>

Tato funkce odstraní prvek 6 z vektoru posledního druhého řádku. Proto v se stává { { 1, 2, 3 }, { 4, 5 }, { 7, 8 } }.

Níže je uveden příklad demonstrující odstranění vektorů z vektoru.




// 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 } }; // Odstranění prvků z // posledního řádku vektoru vec[2].pop_back(); vec[1].pop_back(); // Zobrazení 2D vektoru pro (int i = 0; i<3; i++) { for ( auto it = vec[i].begin(); it != vec[i].end(); it++) cout << *it << ' '; cout << endl; } return 0; }>

>

>

Výstup:

 1 2 3 4 5 7 8>

Průchod vektorem vektorů

Vektor vektorů lze procházet pomocí iterátory v C++. Následující kód demonstruje procházení 2D vektoru.

Syntax:

 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) } }>

Níže je uveden příklad demonstrující procházení ve vektoru vektorů.




// 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 } }; // Zobrazení 2D vektoru pro (int i = 0; i<3; i++) { for ( auto it = vec[i].begin(); it != vec[i].end(); it++) cout << *it << ' '; cout << endl; } return 0; }>

strojopis pro každého
>

>

Výstup:

 1 2 3 4 5 6 7 8 9>