Array de vectores en C++ STL

Requisito previo: Arrays en C++ , Vector en C++ STL

Una array es una colección de elementos almacenados en ubicaciones de memoria contiguas. Es para almacenar varios artículos del mismo tipo juntos. Esto facilita el acceso a los elementos almacenados en él por la posición de cada elemento.

Los vectores se conocen como arrays dinámicas con la capacidad de cambiar su tamaño automáticamente cuando se inserta o elimina un elemento, y el contenedor maneja automáticamente su almacenamiento.

Por lo tanto, una array de vectores es una array bidimensional con un número fijo de filas donde cada fila es un vector de longitud variable. Cada índice de array almacena un vector que se puede recorrer y acceder mediante iteradores .

Sintaxis:

vector <data_type> V[size];

Ejemplo:

vector <int> A[5];
where A is the array of vectors of int of size 5

Inserción: la inserción en una array de vectores se realiza mediante la función push_back() .

Por ejemplo:

for i in [0, n) {
  A[i].push_back(35)
}

El pseudocódigo anterior inserta el elemento 35 en cada índice del vector <int> A[n] .

Recorrido: el recorrido en una array de vectores se realiza mediante iteradores .

Por ejemplo:

for i in [0, n) {
   for(iterator it = A[i].begin(); 
       it!=A[i].end(); it++) {
      print(*it)
    }
}

El pseudocódigo anterior atraviesa el vector <int> A[n] en cada índice usando los iteradores iniciales A[i].begin() y el iterador final A[i].end() . Para acceder al elemento que utiliza (*it) , los iteradores son punteros que apuntan a elementos en el vector <int> A[n] .

A continuación se muestra el programa para ilustrar la inserción en la array de vectores.

// 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;
}
Producción:

Elements at index 0: 1 2 3 4 
Elements at index 1: 2 3 4 
Elements at index 2: 3 4 
Elements at index 3: 4 
Elements at index 4:

Publicación traducida automáticamente

Artículo escrito por _boundless_ y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *