跳到主要内容

std::forward_list erase_after() 方法

// (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)firstlast 之间的距离呈线性关系 - 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
本文源自 CppReference 页面。可能为了改进或编辑偏好进行了修改。点击“编辑此页面”查看此文档的所有更改。
悬停查看原始许可证。

std::forward_list erase_after() 方法

// (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)firstlast 之间的距离呈线性关系 - 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
本文源自 CppReference 页面。可能为了改进或编辑偏好进行了修改。点击“编辑此页面”查看此文档的所有更改。
悬停查看原始许可证。