Пространства имён
Варианты
Действия

std::list::erase

Материал из cppreference.com
< cpp‎ | container‎ | list

iterator erase( iterator pos );
iterator erase( const_iterator pos );
(1) (до C++11)
(начиная с C++11)
iterator erase( iterator first, iterator last );
iterator erase( const_iterator first, const_iterator last );
(2) (до C++11)
(начиная с C++11)
Удаляет указанные элементы из контейнера.
Оригинал:
Removes specified elements from the container.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
1)
Удаляет элемент pos.
Оригинал:
Removes the element at pos.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
2)
Удаляет элементы в диапазоне [first; last).
Оригинал:
Removes the elements in the range [first; last).
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Указатели и итераторы к удалённым элементам становятся недействительными. Другие итераторы и указатели остаются без изменений.

Содержание

[править] Параметры

pos -
итератор на элемент для удаления
Оригинал:
iterator to the element to remove
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
first, last -
диапазон элементов для удаления
Оригинал:
range of elements to remove
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Возвращаемое значение

Итератор, следующих за последним удаленным элементом.
Оригинал:
iterator following the last removed element.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Пример

#include <list>
#include <iostream>
#include <iterator>
 
int main( )
{
    std::list<int> c{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    for (auto &i : c) {
        std::cout << i << " ";
    }
    std::cout << '\n';
 
    c.erase(c.begin());
 
    for (auto &i : c) {
        std::cout << i << " ";
    }
    std::cout << '\n';
 
    std::list<int>::iterator range_begin = c.begin();
    std::list<int>::iterator range_end = c.begin();
    std::advance(range_begin,2);
    std::advance(range_end,5);
 
    c.erase(range_begin, range_end);
 
    for (auto &i : c) {
        std::cout << i << " ";
    }
    std::cout << '\n';
}

Вывод:

0 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 6 7 8 9

[править] Сложность

1) Constant.

2) linear in the distance between first and last.

[править] См. также

Очищает контейнер
(public функция-член) [edit]