void remove( const T& value );
(until C++20)size_type remove( const T& value );
(since C++20)template< class UnaryPred >
void remove_if( UnaryPred p );
template< class UnaryPred >
size_type remove_if( UnaryPred p );
Removes all elements satisfying specific criteria.
1) Removes all elements that are equal to value (using operator==).
2) Removes all elements for which predicate p returns true.
Invalidates only the iterators and references to the removed elements.
[edit] Parameters value - value of the elements to remove p - unary predicate which returns âtrue if the element should be removed.The expression p(v) must be convertible to bool for every argument v
of type (possibly const) T
, regardless of value category, and must not modify v
. Thus, a parameter type of T&is not allowed, nor is T unless for T
a move is equivalent to a copy(since C++11). â
UnaryPred
must meet the requirements of Predicate. [edit] Return value
(none)
(until C++20)The number of elements removed.
(since C++20) [edit] ComplexityGiven \(\scriptsize N\)N as std::distance(begin(), end()):
1) Exactly \(\scriptsize N\)N comparisons using operator==.
2) Exactly \(\scriptsize N\)N applications of the predicate p.
[edit] Notes [edit] Example#include <list> #include <iostream> int main() { std::list<int> l = {1, 100, 2, 3, 10, 1, 11, -1, 12}; auto count1 = l.remove(1); std::cout << count1 << " elements equal to 1 were removed\n"; auto count2 = l.remove_if([](int n){ return n > 10; }); std::cout << count2 << " elements greater than 10 were removed\n"; std::cout << "Finally, the list contains: "; for (int n : l) std::cout << n << ' '; std::cout << '\n'; }
Output:
2 elements equal to 1 were removed 3 elements greater than 10 were removed Finally, the list contains: 2 3 10 -1Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR Applied to Behavior as published Correct behavior LWG 1207 C++98 it was unclear whether iteratorsRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4