std::experimental::erase (std::list)
来自cppreference.com
< cpp | experimental
| 在标头 <experimental/list> 定义
|
||
| |
(库基础 TS v2) | |
从容器擦除所有比较等于 value 的元素。等价于 c.remove_if([&](auto& elem) { return elem == value; });。
参数
| c | - | 要从中擦除的容器 |
| value | - | 要移除的值 |
复杂度
线性。
示例
运行此代码
#include <experimental/list>
#include <iostream>
auto show = [](const auto& container)
{
for (auto e : container)
std::cout << e;
std::cout << '\n';
};
int main()
{
std::list<int> data{1, 1, 1, 4, 1, 1, 1, 2, 1, 1, 1};
show(data);
std::experimental::erase(data, 1);
show(data);
}
输出:
11141112111
42
注解
不同于 std::list::remove,此函数模板接受异质类型,并在调用 == 运算符前不强制转换到容器的值类型。
参阅
| 移除满足特定条件的元素 (函数模板) | |
| 移除满足特定标准的元素 ( std::list<T,Allocator> 的公开成员函数) | |
(库基础 2 TS) |
从 std::list 擦除所有满足谓词的元素 (函数模板) |