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

std::list::erase

Материал из cppreference.com

[edit template]
 
 
 
 
<tbody> </tbody>
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)

Удаляет указанные элементы из контейнера.

1) Удаляет элемент в позиции pos.

2) Удаляет элементы в диапазоне [first; last).

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

Параметры

pos итератор указывающий на удаляемый элемент
first, last диапазон удаляемых элементов

Возвращаемое значение

Итератор, следующий за последним удаленным элементом.

Пример

#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 функция-элемент) [править]