Lista de vectores en C++ STL con ejemplos

Liza

Las listas son contenedores de secuencias que permiten la asignación de memoria no contigua. En comparación con el vector, la lista tiene un recorrido lento, pero una vez que se ha encontrado una posición, la inserción y la eliminación son rápidas. Automóvil club británico

Funciones utilizadas con List:

  • push_front(x): Agrega un nuevo elemento ‘x’ al principio de la lista.
  • push_back(x): Agrega un nuevo elemento ‘x’ al final de la lista.

Listas de reenvío

La lista de reenvío en STL implementa una lista enlazada individualmente. Introducidas desde C++ 11, las listas de reenvío son más útiles que otros contenedores en las operaciones de inserción, eliminación y movimiento (como ordenar) y permiten la inserción y eliminación constante de elementos en el tiempo. la lista la la la la de la una al revés
la la

Funciones utilizadas con Lista de reenvío:

  • push_front(x): – Agrega un nuevo elemento ‘x’ al principio de la lista.

Vectores

Los vectores son lo mismo que las 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.

Funciones utilizadas con Vectores:

  • size(): Devuelve el número de elementos del vector.
  • push_back(): Esta función se usa para empujar elementos a un vector desde atrás.

Una lista de vectores puede ser bastante útil al diseñar estructuras de datos complejas. Cada Node puede contener un vector.

A continuación se muestra la implementación de la lista de vectores:

C++

// C++ program to implement
// the above approach
#include <bits/stdc++.h>
using namespace std;
  
// Function to print list
// contents
void print(list<vector<int> >& listOfVectors)
{
    for (auto vect : listOfVectors) {
        // Each element of the list is
        // a vector itself
        vector<int> currentVector = vect;
  
        cout << "[ ";
  
        // Printing vector contents
        for (auto element : currentVector)
            cout << element << ' ';
  
        cout << ']';
        cout << '\n';
    }
}
  
// Driver code
int main()
{
    // Declaring a list of vectors
    list<vector<int> > listOfVectors;
  
    // Declaring a vector
    vector<int> vector1;
  
    // Adding elements into the
    // vector
    vector1.push_back(10);
    vector1.push_back(14);
    vector1.push_back(17);
  
    // Push the vector at the back
    // in the list
    listOfVectors.push_back(vector1);
  
    // Declaring another vector
    vector<int> vector2;
  
    // Adding elements in the vector
    vector2.push_back(2);
    vector2.push_back(6);
    vector2.push_back(11);
  
    // Push the vector at the back
    // in the list
    listOfVectors.push_back(vector2);
  
    // Declaring another vector
    vector<int> vector3;
  
    // Adding elements in the
    // vector
    vector3.push_back(11);
    vector3.push_back(16);
    vector3.push_back(29);
  
    // Push the vector at the front
    // in the list
    listOfVectors.push_front(vector3);
  
    // Calling print function
    print(listOfVectors);
    return 0;
}
Producción

[ 10 14 17 ]
[ 2 6 11 ]
[ 11 16 29 ]

A continuación se muestra la implementación de la lista directa de vectores:

C++

// C++ program to implement
// the above approach
#include <bits/stdc++.h>
using namespace std;
  
// Function to print forward
// list contents
void print(forward_list<vector<int> >& forwardListOfVectors)
{
    for (auto vect : forwardListOfVectors) {
        // Each element of the forward list
        // is a vector itself
        vector<int> currentVector = vect;
  
        cout << "[ ";
  
        // Printing vector contents
        for (auto element : currentVector)
            cout << element << ' ';
  
        cout << ']';
        cout << '\n';
    }
}
  
// Driver code
int main()
{
    // Declaring a list of vectors
    forward_list<vector<int> > forwardListOfVectors;
  
    // Declaring a vector
    vector<int> vector1;
  
    // Adding elements into the vector
    vector1.push_back(10);
    vector1.push_back(14);
    vector1.push_back(17);
  
    // Push the vector in the forward
    // list
    forwardListOfVectors.push_front(vector1);
  
    // Declaring another vector
    vector<int> vector2;
  
    // Adding elements in the vector
    vector2.push_back(2);
    vector2.push_back(6);
    vector2.push_back(11);
  
    // Push the vector in the forward
    // list
    forwardListOfVectors.push_front(vector2);
  
    // Declaring another vector
    vector<int> vector3;
  
    // Adding elements in the vector
    vector3.push_back(11);
    vector3.push_back(16);
    vector3.push_back(29);
  
    // Push the vector in the forward
    // list
    forwardListOfVectors.push_front(vector3);
  
    // Calling print function
    print(forwardListOfVectors);
  
    return 0;
}
Producción

[ 11 16 29 ]
[ 2 6 11 ]
[ 10 14 17 ]

Publicación traducida automáticamente

Artículo escrito por bhuwanesh 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 *