remove_if
STD::列表::删除,删除[医]如果
void remove( const T& value | | |
---|---|---|
template< class UnaryPredicate > void remove_if( UnaryPredicate p | | |
移除满足特定条件的所有元素。第一个版本删除所有等于value
,第二个版本移除谓词的所有元素。p
回报true
...
参数
value | - | value of the elements to remove |
---|---|---|
p | - | unary predicate which returns true if the element should be removed. The signature of the predicate function should be equivalent to the following: bool pred(const Type &a The signature does not need to have const &, but the function must not modify the objects passed to it. The type Type must be such that an object of type list<T,Allocator>::const_iterator can be dereferenced and then implicitly converted to Type. |
返回值
%280%29
复杂性
容器的大小成线性。
例
二次
#include <list>
#include <iostream>
int main()
{
std::list<int> l = { 1,100,2,3,10,1,11,-1,12 };
l.remove(1 // remove both elements equal to 1
l.remove_if([](int n){ return n > 10; } // remove all elements greater than 10
for (int n : l) {
std::cout << n << ' ';
}
std::cout << '\n';
}
二次
产出:
二次
2 3 10 -1
二次
另见
removeremove_if | removes elements satisfying specific criteria (function template) |
---|
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。