std::forward_list<T,Allocator>:: erase_after
From cppreference.net
<
cpp
|
container
|
forward list
|
iterator erase_after
(
const_iterator pos
)
;
|
(1) |
(начиная с C++11)
(constexpr начиная с C++26) |
|
iterator erase_after
(
const_iterator first, const_iterator last
)
;
|
(2) |
(начиная с C++11)
(constexpr начиная с C++26) |
Удаляет указанные элементы из контейнера.
1)
Удаляет элемент, следующий за
pos
.
Если итератор, следующий за
pos
не может быть разыменован, поведение не определено.
2)
Удаляет элементы в диапазоне
(
first
,
last
)
.
Если любой итератор в диапазоне
(
first
,
last
)
не является разыменовываемым, поведение не определено.
Содержание |
Параметры
| pos | - | итератор на элемент, предшествующий удаляемому элементу |
| first, last | - | пара итераторов, определяющих диапазон удаляемых элементов |
Возвращаемое значение
1)
Итератор на элемент, следующий за удалённым, или
end()
если такого элемента не существует.
2)
last
Сложность
1)
Константа.
2)
Линейно по расстоянию между
first
и
last
.
Исключения
Ничего не выбрасывает.
Пример
Запустить этот код
#include <forward_list> #include <iostream> #include <iterator> int main() { std::forward_list<int> l = {1, 2, 3, 4, 5, 6, 7, 8, 9}; // l.erase(l.begin()); // Ошибка: нет функции erase() l.erase_after(l.before_begin()); // Удаляет первый элемент for (auto n : l) std::cout << n << ' '; std::cout << '\n'; auto fi = std::next(l.begin()); auto la = std::next(fi, 3); l.erase_after(fi, la); for (auto n : l) std::cout << n << ' '; std::cout << '\n'; }
Вывод:
2 3 4 5 6 7 8 9 2 3 6 7 8 9
Смотрите также
|
очищает содержимое
(публичная функция-член) |