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; }
[ 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; }
[ 11 16 29 ] [ 2 6 11 ] [ 10 14 17 ]