C++ <list> función erase
erasees la función en list utilizada paraeliminar el elemento en la posición especificada.
eraseEs una función miembro de la clase contenedor, utilizada para eliminar uno o más elementos en posiciones especificadas de la lista enlazada.
En list,erasesu complejidad temporal es O(1), ya que solo necesita ajustar los punteros.
Significado de la palabra: eraseSignifica 'borrar', es decir, eliminar el elemento en la posición especificada.
Sintaxis básica y parámetros
eraseEs una función miembro de la clase contenedor.
Formato de sintaxis
iterator erase(iterator pos); iterator erase(iterator first, iterator last);
Descripción de parámetros
- Parámetro:
pos- Posición del elemento a eliminar - Parámetro:
first, last- Rango de elementos a eliminar
Descripción de la función
- Valor de retorno: Devuelve un iterador que apunta al siguiente elemento.
- Efecto: Elimina el elemento en la posición especificada.
Ejemplo
Ejemplo 1: Eliminar un solo elemento
Ejemplo
#include <iostream>
#include <list>
int main() {
std::list<int> numbers = {1, 2, 3, 4, 5};
std::cout << "Original: ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
// Eliminar el segundo elemento
auto it = std::next(numbers.begin(), 1);
numbers.erase(it);
std::cout << "Después de eliminar: ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
return 0;
}
#include <list>
int main() {
std::list<int> numbers = {1, 2, 3, 4, 5};
std::cout << "Original: ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
// Eliminar el segundo elemento
auto it = std::next(numbers.begin(), 1);
numbers.erase(it);
std::cout << "Después de eliminar: ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
return 0;
}
Resultado esperado:
原始: 1 2 3 4 5 Después de eliminar: 1 3 4 5
Ejemplo 2: Eliminar varios elementos
Ejemplo
#include <iostream>
#include <list>
int main() {
std::list<int> numbers = {1, 2, 3, 4, 5, 6, 7};
std::cout << "Original: ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
// Eliminar los elementos del 2 al 4
auto first = std::next(numbers.begin(), 1);
auto last = std::next(numbers.begin(), 4);
numbers.erase(first, last);
std::cout << "Después de eliminar: ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
return 0;
}
#include <list>
int main() {
std::list<int> numbers = {1, 2, 3, 4, 5, 6, 7};
std::cout << "Original: ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
// Eliminar los elementos del 2 al 4
auto first = std::next(numbers.begin(), 1);
auto last = std::next(numbers.begin(), 4);
numbers.erase(first, last);
std::cout << "Después de eliminar: ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
return 0;
}
Resultado esperado:
原始: 1 2 3 4 5 6 7 Después de eliminar: 1 5 6 7
Otras extensiones
C++ clase contenedor <list>