Vettore di vettori in C++ STL con esempi
Prerequisito: Vettori in C++ STL
Vettori sono noti come array dinamici con la capacità di ridimensionarsi automaticamente quando un elemento viene inserito o eliminato, e la loro archiviazione viene gestita automaticamente dal contenitore.
Vettore di vettori è un vettore bidimensionale con un numero variabile di righe dove ciascuna riga è vettoriale. Ciascun indice di vettore memorizza un vettore che può essere attraversato e accessibile utilizzando iteratori . È simile ad un Matrice di vettori ma con proprietà dinamiche.
Sintassi:
vector vec;
Esempio:
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 Inserimento in Vector di Vettori
Gli elementi possono essere inseriti in un vettore utilizzando il comando respingere() funzione di C++ STL.
L'esempio seguente mostra l'operazione di inserimento in un vettore di vettori. Il codice crea un vettore 2D utilizzando la funzione push_back() e quindi visualizza la matrice.
Sintassi:
vector_name.push_back(value) where value refers to the element to be added in the back of the vector
Esempio 1:
v2 = {1, 2, 3} v1.push_back(v2); Questa funzione inserisce il vettore v2 nel vettore dei vettori v1. Pertanto v1 diventa { {1, 2, 3} }.
Esempio 2:
v2 = {4, 5, 6} v1.push_back(v2); Questa funzione inserisce il vettore v2 nel vettore esistente dei vettori v1 e v1 diventa v1 = { {1, 2, 3}, {4, 5, 6} }
Di seguito è riportato l'esempio per dimostrare l'inserimento in un vettore di vettori.
// 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; // Elementi da inserire nella colonna int num = 10; // Inserimento di elementi in vector for (int i = 0; i // Vector per memorizzare gli elementi della colonna vector |
Produzione:
10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105
Rimozione o cancellazione in un vettore di vettori
Gli elementi possono essere rimossi da un vettore di vettori utilizzando il comando pop_back() funzione di C++ STL.
L'esempio seguente mostra l'operazione di rimozione in un vettore di vettori. Il codice rimuove gli elementi da un vettore 2D utilizzando la funzione pop_back() e quindi visualizza la matrice.
Sintassi:
vector_name[row_position].pop_back()
Esempio 1: Sia il vettore dei vettori v = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }
v[2].pop_back()
Questa funzione rimuove l'elemento 9 dall'ultimo vettore di riga. Pertanto v diventa { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8 } }.
Esempio 2:
v[1].pop_back()
Questa funzione rimuove l'elemento 6 dall'ultimo secondo vettore di riga. Pertanto v diventa { { 1, 2, 3 }, { 4, 5 }, { 7, 8 } }.
Di seguito è riportato l'esempio per dimostrare la rimozione da un vettore di vettori.
// 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 } }; // Rimozione di elementi dall' // ultima riga del vettore vec[2].pop_back(); vec[1].pop_back(); // Visualizzazione del vettore 2D per (int i = 0; i <3; i++) { for ( auto it = vec[i].begin(); it != vec[i].end(); it++) cout < < *it < < ' '; cout < < endl; } return 0; }> |
Produzione:
1 2 3 4 5 7 8
Attraversamento di un vettore di vettori
Il vettore dei vettori può essere attraversato utilizzando il iteratori nel C++. Il codice seguente illustra l'attraversamento di un vettore 2D.
Sintassi:
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) } } Di seguito è riportato l'esempio per dimostrare l'attraversamento in un vettore di vettori.
// 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 } }; // Visualizzazione del vettore 2D per (int i = 0; i <3; i++) { for ( auto it = vec[i].begin(); it != vec[i].end(); it++) cout < < *it < < ' '; cout < < endl; } return 0; }> |
Produzione:
1 2 3 4 5 6 7 8 9