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.
Lista de funciones útiles:
1. emplace(posición, valor) : esta función se utiliza para insertar un elemento en la posición especificada.
2. emplace_back (valor) : – Esta función agrega valor al final de la lista. Es diferente de push_back() por el hecho de que crea elementos directamente en la posición, mientras que push_back() primero hace una copia temporal y copia desde allí. emplace_back() es más rápido en la implementación que push_back() en la mayoría de las situaciones.
3. emplace_front(valor): Esta función agrega valor al principiode la Lista. Es diferente de push_front() por el hecho de que crea elementos directamente en la posición, mientras que push_front() primero hace una copia temporal y copia desde allí. emplace_front() es más rápido en la implementación que push_front() en la mayoría de las situaciones.
CPP
// C++ code to demonstrate the working of // emplace(), emplace_front() and emplace_back() #include <iostream> #include <list> // for list functions using namespace std; // Driver Code int main() { // Declaring a list list<int> gqlist; // Initialising list iterator list<int>::iterator it = gqlist.begin(); // Entering list element using emplace_back() for (int i = 1; i <= 5; i++) gqlist.emplace_back(i); // Displaying list elements cout << "List after emplace_back operation is : "; for (int& x : gqlist) cout << x << " "; cout << endl; // Entering list element using emplace_front() for (int i = 10; i <= 50; i += 10) gqlist.emplace_front(i); // Displaying list elements cout << "List after emplace_front operation is : "; for (int& x : gqlist) cout << x << " "; cout << endl; // using advance() to advance iterator position advance(it, 2); // inserting element at 2nd position using emplace() gqlist.emplace(it, 100); // Displaying list elements cout << "List after emplace operation is : "; for (int& x : gqlist) cout << x << " "; cout << endl; return 0; }
List after emplace_back operation is : 1 2 3 4 5 List after emplace_front operation is : 50 40 30 20 10 1 2 3 4 5 List after emplace operation is : 50 100 40 30 20 10 1 2 3 4 5
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
4. merge(list2) : esta función se utiliza para fusionar list2 con list1 . Si ambas listas están ordenadas, la lista resultante también está ordenada.
5. remove_if(condición) : Esta función elimina el elemento de la Lista sobre la base de la condición dada en su argumento.
CPP
// C++ code to demonstrate the working of // merge() and remove_if() #include <iostream> #include <list> // for list functions using namespace std; // Driver Code int main() { // Initializing list1 list<int> gqlist1 = { 1, 2, 3 }; // Initializing list2 list<int> gqlist2 = { 2, 4, 6 }; // using merge() to merge list1 with list2 gqlist1.merge(gqlist2); // Displaying list elements cout << "list1 after merge operation is : "; for (int& x : gqlist1) cout << x << " "; cout << endl; // using remove_if() to remove odd elements // removes 1 and 3 gqlist1.remove_if([](int x) { return x % 2 != 0; }); // Displaying list elements cout << "list1 after remove_if operation is : "; for (int& x : gqlist1) cout << x << " "; cout << endl; return 0; }
list1 after merge operation is : 1 2 2 3 4 6 list1 after remove_if operation is : 2 2 4 6
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
6. unique() : esta función se utiliza para eliminar las apariciones repetidas del número. La lista debe ordenarse para que esta función se ejecute.
7. splice(posición, lista2): Esta función se utiliza para transferir elementos de una lista a otra.
CPP
// C++ code to demonstrate the working of // unique() and splice() #include <iostream> #include <list> // for list functions using namespace std; // Driver Code int main() { // Initializing list1 list<int> gqlist1 = { 1, 1, 1, 2, 2, 3, 3, 4 }; // Initializing list2 list<int> gqlist2 = { 2, 4, 6 }; // Initializing list1 iterator list<int>::iterator it = gqlist1.begin(); // using advance() to increment iterator position advance(it, 3); // Displaying list elements cout << "list1 before unique operation is : "; for (int& x : gqlist1) cout << x << " "; cout << endl; // using unique() to remove repeating elements gqlist1.unique(); // Displaying list elements cout << "list1 after unique operation is : "; for (int& x : gqlist1) cout << x << " "; cout << endl << endl; // using splice() to splice list2 in list1 at position // it inserts list2 after 2nd position gqlist1.splice(it, gqlist2); // Displaying list elements cout << "list1 after splice operation is : "; for (int& x : gqlist1) cout << x << " "; cout << endl; return 0; }
list1 before unique operation is : 1 1 1 2 2 3 3 4 list1 after unique operation is : 1 2 3 4 list1 after splice operation is : 1 2 4 6 2 3 4
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
8. swap(list2): esta función se utiliza para intercambiar un elemento de lista con otro .
CPP
// C++ code to demonstrate the working of // swap() #include <iostream> #include <list> // for list functions using namespace std; // Driver Code int main() { // Initializing list1 list<int> gqlist1 = { 1, 2, 3, 4 }; // Initializing list1 list<int> gqlist2 = { 2, 4, 6 }; // Displaying list before swapping cout << "The contents of 1st list " "before swapping are : "; for (int& x : gqlist1) cout << x << " "; cout << endl; cout << "The contents of 2nd list " "before swapping are : "; for (int& x : gqlist2) cout << x << " "; cout << endl; // Use of swap() to swap the list gqlist1.swap(gqlist2); // Displaying list after swapping cout << "The contents of 1st list " "after swapping are : "; for (int& x : gqlist1) cout << x << " "; cout << endl; cout << "The contents of 2nd list " "after swapping are : "; for (int& x : gqlist2) cout << x << " "; cout << endl; return 0; }
The contents of 1st list before swapping are : 1 2 3 4 The contents of 2nd list before swapping are : 2 4 6 The contents of 1st list after swapping are : 2 4 6 The contents of 2nd list after swapping are : 1 2 3 4
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
Este artículo es una contribución de Manjeet Singh . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA