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

std::

list::remove

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

删除具有特定值的元素

从容器中删除与val相等的所有元素,调用这些对象的析构函数并按删除的元素数量减少容器的大小。

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

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

☲  参数


val
要删除的元素的值。

成员类型value_type是容器中元素的类型,在list中定义为它的第一个模板形参(T)的别名。

☉  返回值



none

☣  示例



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

int main ()
{
  int myints[]= {17,89,7,14};
  std::list<int> mylist (myints,myints+4);

  mylist.remove(89);

  std::cout << "mylist contains:";
  for (std::list<int>::iterator it=mylist.begin(); it!=mylist.end(); ++it)
    std::cout << ' ' << *it;
  std::cout << '\n';

  return 0;
}

输出:
mylist contains: 17 7 14

✥ 复杂度



容器大小呈线性(比较)。

☣ 迭代器的有效性



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

⇄ 数据竞争


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

☂ 异常安全性



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

🍄  另请参阅



list::remove_if 移除满足条件的元素(公众成员函数)
list::unique 删除重复的值(公众成员函数)
list::erase 删除元素(公众成员函数)
list::back 删除最后一个元素(公众成员函数)
list::front 删除第一个元素(公众成员函数)

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