Массив векторов в C ++ STL
Предварительные требования: массивы в 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.