C++ List Library - remove_if() Function


Advertisements

Description

The C++ function std::list::remove_if() removes elements from the list that fulfills the condition. It removes all elements for which predicate returns true.

Declaration

Following is the declaration for std::list::remove_if() function form std::list header.

C++98

template <class Predicate>
void remove_if (Predicate pred);

Parameters

pred − Unary predicate that, which takes a value of the same type and returns true for those values to be removed from the container.

Return value

None.

Exceptions

If pred is guaranteed to not throw, then function never throws exceptions.

Time complexity

Linear i.e. O(n)

Example

The following example shows the usage of std::list::remove_if() function.

#include <iostream>
#include <list>

using namespace std;

bool foo(int n) {
   return (n > 5);
}

int main(void) {
   list<int> l = {1, 2, 3, 4, 5, 6, 7, 8, 9};

   cout << "Contents of list before remove_if operation" << endl;

   for (auto it = l.begin(); it != l.end(); ++it)
      cout << *it << endl;

   /* remove all elements larger than 5 */
   l.remove_if(foo);

   cout << "Contents of list after remove_if operation" << endl;

   for (auto it = l.begin(); it != l.end(); ++it)
      cout << *it << endl;

   return 0;
}

Let us compile and run the above program, this will produce the following result −

Contents of list before remove_if operation
1
2
3
4
5
6
7
8
9
Contents of list after remove_if operation
1
2
3
4
5
list.htm
Advertisements