Las listas son contenedores utilizados en C++ para almacenar datos de forma no contigua. Normalmente, las arrays y los vectores son de naturaleza contigua, por lo que las operaciones de inserción y eliminación son más costosas en comparación con la opción de inserción y eliminación en las listas.
La función remove() se usa para eliminar todos los valores de la lista que corresponden al valor dado como parámetro a la función
. Sintaxis:
listname.remove(value) Parameters : The value of the element to be removed is passed as the parameter. Result : Removes all the elements of the container equal to the value passed as parameter
Ejemplos:
Input : list list{1, 2, 3, 4, 5}; list.remove(4); Output : 1, 2, 3, 5 Input : list list{1, 2, 2, 2, 5, 6, 7}; list.remove(2); Output : 1, 5, 6, 7
Errores y excepciones
- Muestra error si el valor pasado no coincide con el tipo de lista.
- No muestra ninguna garantía de lanzamiento de excepción si la comparación entre el valor y los elementos de la función de lista no arroja ninguna excepción.
CPP
// CPP program to illustrate // Implementation of remove() function #include <iostream> #include <list> using namespace std; int main() { list<int> mylist{ 1, 2, 2, 2, 5, 6, 7 }; mylist.remove(2); for (auto it = mylist.begin(); it != mylist.end(); ++it) cout << ' ' << *it; }
Producción:
1 5 6 7
Complejidad del tiempo: lineal O (N)
Complejidad espacial : O(n) donde n es el tamaño de la lista
La función remove_if() se usa para eliminar todos los valores de la lista que se corresponden con el predicado o la condición dada como parámetro de la función. La función itera a través de cada miembro del contenedor de la lista y elimina todos los elementos que devuelven verdadero para el predicado.
Sintaxis:
listname.remove_if(predicate) Parameters : The predicate in the form of aa function pointer or function object is passed as the parameter. Result : Removes all the elements of the container which return true for the predicate.
Ejemplos:
Input : list list{1, 2, 3, 4, 5}; list.remove_if(odd); Output : 2, 4 Input : list list{1, 2, 2, 2, 5, 6, 7}; list.remove_if(even); Output : 1, 5, 7
Errores y excepciones
- No muestra ninguna garantía de lanzamiento de excepción si la función de predicado no lanza ninguna excepción.
CPP
// CPP program to illustrate // Implementation of remove_if() function #include <iostream> #include <list> using namespace std; // Predicate implemented as a function bool even(const int& value) { return (value % 2) == 0; } // Main function int main() { list<int> mylist{ 1, 2, 2, 2, 5, 6, 7 }; mylist.remove_if(even); for (auto it = mylist.begin(); it != mylist.end(); ++it) cout << ' ' << *it; }
Producción:
1 5 7
Aplicación: dada una lista de números enteros, elimine todos los números primos de la lista e imprima la lista.
Input : 2, 4, 6, 7, 9, 11, 13 Output : 4, 6, 9
CPP
// CPP program to illustrate // Application of remove_if() function #include <iostream> #include <list> using namespace std; // Predicate implemented as a function bool prime(const int& value) { int i; for (i = 2; i < value; i++) { if (value % i == 0) { return false; } } if (value == i) { return true; } } // Main function int main() { list<int> mylist{ 2, 4, 6, 7, 9, 11, 13 }; mylist.remove_if(prime); for (auto it = mylist.begin(); it != mylist.end(); ++it) cout << ' ' << *it; }
Producción:
4 6 9
Complejidad de tiempo: O(n)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por AyushSaxena y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA