std::forward_list<T,Allocator>:: erase_after
From cppreference.net
<
cpp
|
container
|
forward list
|
iterator erase_after
(
const_iterator pos
)
;
|
(1) |
(自 C++11 起)
(自 C++26 起为 constexpr) |
|
iterator erase_after
(
const_iterator first, const_iterator last
)
;
|
(2) |
(自 C++11 起)
(自 C++26 起为 constexpr) |
从容器中移除指定元素。
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
参见
|
清空内容
(公开成员函数) |