Nödvändig förutsättning: Vektorer i C++ STL
Vektorer är kända som dynamiska arrayer med förmågan att ändra storlek automatiskt när ett element infogas eller tas bort, varvid deras lagring hanteras automatiskt av behållaren.
Vektor av vektorer är en tvådimensionell vektor med ett variabelt antal rader där varje rad är vektor. Varje index av vektor lagrar en vektor som kan passeras och nås med hjälp av iteratorer . Det liknar en Uppsättning vektorer men med dynamiska egenskaper.
Syntax:
webbdrivrutin
vector vec;>
Exempel:
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> Infogning i vektor av vektorer
Element kan infogas i en vektor med hjälp av trycka tillbaka() funktion av C++ STL.
Nedan exempel demonstrerar infogningsoperationen i en vektor av vektorer. Koden skapar en 2D-vektor genom att använda push_back()-funktionen och visar sedan matrisen.
Syntax:
vector_name.push_back(value) where value refers to the element to be added in the back of the vector>
Exempel 1:
v2 = {1, 2, 3} v1.push_back(v2);> Denna funktion skjuter vektor v2 in i vektor av vektorer v1. Därför blir v1 { {1, 2, 3} }.
Exempel 2:
v2 = {4, 5, 6} v1.push_back(v2);> Den här funktionen skjuter vektor v2 in i befintlig vektor av vektorer v1 och v1 blir v1 = { {1, 2, 3}, {4, 5, 6} }
Nedan är exemplet för att demonstrera infogning i en vektor av vektorer.
// 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; // Element att infoga i kolumn int num = 10; // Infoga element i vektor för (int i = 0; i // Vektor för att lagra kolumnelement vektor |
>
>Produktion:
10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105>
Borttagning eller radering i en vektor av vektorer
Element kan tas bort från en vektor av vektorer med hjälp av pop_back() funktion av C++ STL.
Nedanstående exempel visar borttagningsoperationen i en vektor av vektorer. Koden tar bort element från en 2D-vektor genom att använda pop_back()-funktionen och visar sedan matrisen.
Syntax:
skillnaden mellan middag och kvällsmat
vector_name[row_position].pop_back()>
Exempel 1: Låt vektorn för vektorer vara vektor v = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }
v[2].pop_back()>
Denna funktion tar bort element 9 från den sista radensvektorn. Därför blir v { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8 } }.
Exempel 2:
öppna inställningsmenyn
v[1].pop_back()>
Denna funktion tar bort element 6 från den sista andra radvektorn. Därför blir v { { 1, 2, 3 }, { 4, 5 }, { 7, 8 } }.
Nedan är exemplet för att demonstrera borttagning från en vektor av vektorer.
// 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 } }; // Ta bort element från // sista raden i vektorn vec[2].pop_back(); vec[1].pop_back(); // Visar 2D-vektorn för (int i = 0; i<3; i++) { for ( auto it = vec[i].begin(); it != vec[i].end(); it++) cout << *it << ' '; cout << endl; } return 0; }> |
>
>Produktion:
1 2 3 4 5 7 8>
Traversering av en vektor av vektorer
Vektorn av vektorer kan korsas med hjälp av iteratorer i C++. Följande kod visar korsningen av en 2D-vektor.
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) } }> Nedan är exemplet för att demonstrera traversering i en vektor av vektorer.
// 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 } }; // Visar 2D-vektorn för (int i = 0; i<3; i++) { for ( auto it = vec[i].begin(); it != vec[i].end(); it++) cout << *it << ' '; cout << endl; } return 0; }> |
iterera en karta i java
>
>Produktion:
1 2 3 4 5 6 7 8 9>