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

来自cppreference.com
 
 
容器库
序列
(C++11)
关联
无序关联
适配器
视图
(C++20)
 
 
iterator erase_after( const_iterator pos );
(1) (C++11 起)
iterator erase_after( const_iterator first, const_iterator last );
(2) (C++11 起)

从容器移除指定元素。

1) 移除 pos 后的元素。
2) 移除 firstlast 前的元素。

参数

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

返回值

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

复杂度

1) 常数。
2)firstlast 之间的距离成线性。

示例

#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

参阅

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