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

< cpp‎ | container‎ | forward list

iterator erase_after( const_iterator pos ); | (1) | (C++11 起)
iterator erase_after( const_iterator first, const_iterator last ); | (2) | (C++11 起)

从容器移除指定元素。

1) 移除 `pos` 后的元素。
2) 移除 `first` 后 `last` 前的元素。

### 参数

pos | - | 指向前趋要被移除元素的迭代器
first, last | - | 要移除的元素范围

### 返回值

1) 指向后随被擦除元素的迭代器，或若不存在这种元素则为 end() 。
2) `last`

### 复杂度

1) 常数。
2) 与 `first` 和 `last` 之间的距离成线性。

### 示例

    #include <forward_list>
    #include <iterator>
    #include <iostream>
    int main()
    {
        std::forward_list<int> l = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

        //    l.erase( l.begin() ); // 错误：无要擦除的元素

        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

### 参阅

clear (C++11) | 清除内容 (公开成员函数)