C++ <list> función erase

C++ 容器类 <list>C++ clase contenedor <list>


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;
}

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;
}

Resultado esperado:

原始: 1 2 3 4 5 6 7
Después de eliminar: 1 5 6 7

C++ 容器类 <list>C++ clase contenedor <list>

Otras extensiones