C++ <list> функция erase

C++ класс контейнера <list>


eraseиспользуется в list дляудаления элементов в указанных позицияхфункции.

eraseЭто функция-член класса контейнера, используемая для удаления одного или нескольких элементов в указанной позиции в связанном списке.

В list,eraseЕго временная сложность — O(1), потому что требуется только изменить указатели.

Определения слов: eraseОзначает «erase», то есть удаление элемента в указанной позиции.


Базовый синтаксис и параметры

eraseявляется функцией-членом класса контейнера.

Формат синтаксиса

iterator erase(iterator pos);
iterator erase(iterator first, iterator last);

Описание параметра

  • Параметр: pos— позиция удаляемого элемента
  • Параметр: first, last— диапазон удаляемых элементов

Описание функции

  • Возвращаемое значение: возвращает итератор, указывающий на следующий элемент.
  • Действие: удаляет элемент в указанной позиции.

Пример

Пример 1: удаление одного элемента

Пример

#include <iostream>
#include <list>

int main() {
    std::list<int> numbers = {1, 2, 3, 4, 5};

    std::cout << "Исходный: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    // Удалить второй элемент
    auto it = std::next(numbers.begin(), 1);
    numbers.erase(it);

    std::cout << "После удаления: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    return 0;
}

Ожидаемый результат выполнения:

原始: 1 2 3 4 5
After deletion: 1 3 4 5

Пример 2: Удаление нескольких элементов

Пример

#include <iostream>
#include <list>

int main() {
    std::list<int> numbers = {1, 2, 3, 4, 5, 6, 7};

    std::cout << "Исходный: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    // Удалить элементы со 2-го по 4-й
    auto first = std::next(numbers.begin(), 1);
    auto last = std::next(numbers.begin(), 4);
    numbers.erase(first, last);

    std::cout << "После удаления: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    return 0;
}

Ожидаемый результат выполнения:

原始: 1 2 3 4 5 6 7
After deletion: 1 5 6 7

C++ класс контейнера <list>

Другие расширения