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 |
删除第一个元素(公众成员函数) |