Namespaces
Variants

std::forward_list<T,Allocator>:: erase_after

From cppreference.net
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

参见

清空内容
(公开成员函数)