std::forward_list<T,Allocator>::remove, remove_if
< cpp | container | forward list
void remove( const T& value ); |
(C++11 起) (C++20 前) |
|
size_type remove( const T& value ); |
(C++20 起) | |
template< class UnaryPredicate > void remove_if( UnaryPredicate p ); |
(C++11 起) (C++20 前) |
|
template< class UnaryPredicate > size_type remove_if( UnaryPredicate p ); |
(C++20 起) | |
移除所有满足特定标准的元素。第一版本移除所有等于 value
的元素,第二版本移除所有谓词 p
对它返回 true 的元素。
参数
value | - | 要移除的元素的值 |
p | - | 若应该移除该元素则返回 true 的一元谓词。 对每个(可为 const 的) |
返回值
(无) |
(C++20 前) |
移除的元素数。 |
(C++20 起) |
复杂度
与容器大小成线性
示例
运行此代码
#include <forward_list> #include <iostream> int main() { std::forward_list<int> l = { 1,100,2,3,10,1,11,-1,12 }; l.remove(1); // 移除两个等于 1 的元素 l.remove_if([](int n){ return n > 10; }); // 移除全部大于 10 的元素 for (int n : l) { std::cout << n << ' '; } std::cout << '\n'; }
输出:
2 3 10 -1
参阅
移除满足特定判别标准的元素 (函数模板) |