std::forward_list erase_after() 方法
- 自 C++11 起
// (1) Non const version only
iterator erase( const_iterator pos );
// (2) Non const version only
iterator erase( const_iterator first, const_iterator last );
从容器中删除指定的元素。
- (1) 删除
pos
后面的元素。 - (2) 删除
first
之后到last
之前的元素。
参数
pos
- 指向要删除元素的前一个元素的迭代器first
,last
- 要删除的元素范围
返回值
- (1) 指向被删除元素之后元素的迭代器,如果不存在这样的元素,则为
end()
。 - (2)
last
。
复杂度
- (1) 常数 - O(1)。
- (2) 与
first
和last
之间的距离呈线性关系 - O(std::distance(first, last))。
异常
(无)
示例
Main.cpp
#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() ); // ERROR: No function erase
l.erase_after( l.before_begin() ); // Removes first element
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