Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

forward_list::remove

公众成员函数  <forward_list>
void remove (const value_type& val);

删除具有特定值的元素

从容器中移除所有比较值等于val的元素。这将调用这些对象的析构函数,并按移除的元素数量减少容器大小。

不同于成员函数forward_list::erase_after根据元素的位置(使用迭代器) 来删除元素,这个函数(forward_list::remove)根据元素的值来删除元素。

存在一个类似的函数forward_list::remove_if,它允许使用除相等比较之外的条件来确定一个元素是否被删除。

☲  参数


val
要删除的元素的值。
成员类型value_type是容器中元素的类型,在forward_list中定义为第一个模板形参(T)的别名。

☉  返回值



none

☣  示例



// remove from forward_list
#include <iostream>
#include <forward_list>

int main ()
{
  std::forward_list<int> mylist = {10, 20, 30, 40, 30, 20, 10};

  mylist.remove(20);

  std::cout << "mylist contains:";
  for (int& x: mylist) std::cout << ' ' << x;
  std::cout << '\n';

  return 0;
}

输出:
mylist contains: 10 30 40 30 10

✥ 复杂度



容器大小线性(比较)。

☣ 迭代器的有效性



指向被函数删除的元素的迭代器、指针和引用将失效。 所有其他迭代器、指针和引用保持其有效性。

⇄ 数据竞争


容器被修改
删除的元素被修改。并发访问或修改其他元素是安全的,但遍历容器是不安全的。

☂ 异常安全性



如果保证元素之间的相等比较不会抛出异常,则函数永远不会抛出异常(no-throw保证)。
否则,如果抛出异常,容器将保持有效状态(基本保证)

🍄  另请参阅



forward_list::remove_if 移除满足条件的元素(公共成员函数)
forward_list::erase_after 删除元素 (公共成员函数)
forward_list::pop_front 删除第一个元素 (公共成员函数)
forward_list::unique 删除重复的值 (公共成员函数)

联系我们 免责声明 关于CandCplus 网站地图