C++ <list> - remove_if() Function
The C++ list::remove_if function is used to delete all elements for which Predicate pred returns true.
Syntax
template <class Predicate> void remove_if (Predicate pred);
template <class Predicate> void remove_if (Predicate pred);
Parameters
pred |
Specify an unary predicate that accepts elements of the list as argument, and returns true for the values to be removed, false otherwise. |
Return Value
None.
Time Complexity
Linear i.e, Θ(n).
Example:
In the example below, the list::remove_if function is used to delete all elements from the given list which are in the range [20, 30].
#include <iostream> #include <list> using namespace std; //a predicate implemented as a function bool del_range (int i) {return (i>=20 && i<=30);} int main (){ list<int> MyList{10, 20, 30, 40, 50, 30, 30, 40}; list<int>::iterator it; cout<<"MyList contains: "; for(it = MyList.begin(); it != MyList.end(); it++) cout<<*it<<" "; //Remove all elements from the list in range [20, 30] MyList.remove_if(del_range); cout<<"\nMyList contains: "; for(it = MyList.begin(); it != MyList.end(); it++) cout<<*it<<" "; return 0; }
The output of the above code will be:
MyList contains: 10 20 30 40 50 30 30 40 MyList contains: 10 40 50 40
❮ C++ <list> Library