logo

Вектор векторів у C++ STL із прикладами

Необхідна умова: Вектори в C++ STL

Вектори відомі як динамічні масиви з можливістю автоматичного зміни розміру, коли елемент вставляється або видаляється, а їх зберігання автоматично обробляється контейнером.



Вектор векторів це двовимірний вектор зі змінною кількістю рядків, де кожен рядок є вектором. Кожен індекс вектора зберігає вектор, який можна обійти та отримати доступ за допомогою ітератори . Це схоже на an Масив векторів але з динамічними властивостями.

Синтаксис:

vector vec;>

приклад:



 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>

Вставка векторів у вектор

Елементи можна вставляти у вектор за допомогою відсунути() функція C++ STL.

Наведений нижче приклад демонструє операцію вставки у вектор векторів. Код створює двовимірний вектор за допомогою функції push_back(), а потім відображає матрицю.



Синтаксис:

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

приклад 1:

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

Ця функція штовхає вектор v2 у вектор векторів v1. Тому v1 стає { {1, 2, 3} }.

приклад 2:

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

Ця функція вставляє вектор v2 в існуючий вектор векторів v1, і v1 стає v1 = { {1, 2, 3}, {4, 5, 6} }

перемикач java

Нижче наведено приклад для демонстрації вставки у вектор векторів.




// 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; // Елементи для вставки в стовпець int num = 10; // Вставлення елементів у вектор for (int i = 0; i // Вектор для збереження вектора елементів стовпця v1; for (int j = 0; j v1.push_back(num); num += 5; } // Відштовхування вище 1D-вектора // для створення 2D-вектора vec.push_back(v1); } // Відображення 2D-вектора для (int i = 0; i for (int j = 0; j cout<< vec[i][j] << ' '; cout << endl; } return 0; }>

>

>

Вихід:

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

Видалення або видалення у векторі векторів

Елементи можна видалити з вектора векторів за допомогою pop_back() функція C++ STL.

Наведений нижче приклад демонструє операцію видалення у векторі векторів. Код видаляє елементи з двовимірного вектора за допомогою функції pop_back(), а потім відображає матрицю.
Синтаксис:

vector_name[row_position].pop_back()>

приклад 1: Нехай вектор векторів буде вектором v = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }

 v[2].pop_back()>

Ця функція видаляє елемент 9 з останнього вектора рядка. Тому v стає { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8 } }.

приклад 2:

 v[1].pop_back()>

Ця функція видаляє елемент 6 з останнього другого вектора рядка. Тому v стає { { 1, 2, 3 }, { 4, 5 }, { 7, 8 } }.

Нижче наведено приклад для демонстрації видалення з вектора векторів.

java bean




// 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 } }; // Видалення елементів із // останнього рядка вектора vec[2].pop_back(); vec[1].pop_back(); // Відображення двовимірного вектора для (int i = 0; i<3; i++) { for ( auto it = vec[i].begin(); it != vec[i].end(); it++) cout << *it << ' '; cout << endl; } return 0; }>

ubuntu яка команда

>

>

Вихід:

 1 2 3 4 5 7 8>

Обхід вектора векторів

Вектор векторів можна обійти за допомогою ітератори на C++. Наступний код демонструє обхід двовимірного вектора.

Синтаксис:

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

Нижче наведено приклад для демонстрації обходу у векторі векторів.




// 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 } }; // Відображення двовимірного вектора для (int i = 0; i<3; i++) { for ( auto it = vec[i].begin(); it != vec[i].end(); it++) cout << *it << ' '; cout << endl; } return 0; }>

>

>

Вихід:

 1 2 3 4 5 6 7 8 9>