Массив векторов в C ++ STL

Опубликовано: 1 Декабря, 2021

Предварительные требования: массивы в C ++, векторные в C ++ STL

Массив - это набор элементов, хранящихся в непрерывных ячейках памяти. Он предназначен для одновременного хранения нескольких предметов одного типа. Это упрощает доступ к элементам, хранящимся в нем, по положению каждого элемента.

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

Следовательно, массив векторов - это двумерный массив с фиксированным числом строк, где каждая строка является вектором переменной длины. Каждый индекс массива хранит вектор, по которому можно пройти и получить к нему доступ с помощью итераторов.

Синтаксис:

вектор <тип_данных> V [размер];

Пример:

вектор <int> A [5];
где A - массив векторов размера int размера 5

Вставка: вставка в массив векторов выполняется с помощью функции push_back () .

Например:

для i в [0, n) {
  A [i] .push_back (35)
}

Вышеупомянутый псевдокод вставляет элемент 35 в каждый индекс вектора <int> A [n] .

Обход: обход массива векторов выполняется с помощью итераторов.

Например:

для i в [0, n) {
   for (итератор it = A [i] .begin (); 
       это! = A [i] .end (); it ++) {
      печать (* это)
    }
}

Вышеупомянутый псевдокод проходит vector <int> A [n] по каждому индексу, используя начальные итераторы A [i] .begin () и конечные итераторы A [i] .end () . Для доступа к элементу он использует (* it), поскольку итераторы - это указатели, указывающие на элементы в vector <int> A [n] .

Ниже представлена программа для иллюстрации вставки в массив векторов.

// C++ program to illustrate
// array of vectors
#include <iostream>
#include <vector>
using namespace std;
// Declaring array of vectors
// globally
vector< int > v[5];
// Function for inserting elements
// in array of vectors
void insertionInArrayOfVectors()
{
for ( int i = 0; i < 5; i++) {
// Inserting elements at every
// row i using push_back()
// function in vector
for ( int j = i + 1; j < 5; j++) {
v[i].push_back(j);
}
}
}
// Function to print elements in array
// of vectors
void printElements()
{
// Traversing of vectors v to print
// elements stored in it
for ( int i = 0; i < 5; i++) {
cout << "Elements at index "
<< i << ": " ;
// Displaying element at each column,
// begin() is the starting iterator,
// end() is the ending iterator
for ( auto it = v[i].begin();
it != v[i].end(); it++) {
// (*it) is used to get the
// value at iterator is
// pointing
cout << *it << ' ' ;
}
cout << endl;
}
}
// Function to illustrate array
// of vectors
void arrayOfVectors()
{
// Inserting elements in array
// of vectors
insertionInArrayOfVectors();
// Print elements stored in array
// of vectors
printElements();
}
// Driver code
int main()
{
arrayOfVectors();
return 0;
}
Выход:
Элементы с индексом 0: 1 2 3 4 
Элементы с индексом 1: 2 3 4 
Элементы с индексом 2: 3 4 
Элементы с индексом 3: 4 
Элементы с индексом 4:

Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .

Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.