std::list::erase
Материал из cppreference.com
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 функция-элемент) |