C++ Algorithm Library - count_if() Function



Description

The C++ function std::algorithm::count_if() returns the number of occurrences of value from range that satisfies condition.

Declaration

Following is the declaration for std::algorithm::count_if() function form std::algorithm header.

C++98

template <class InputIterator, class Predicate>
typename iterator_traits<InputIterator>::difference_type
count_if (InputIterator first, InputIterator last, UnaryPredicate pred);

Parameters

  • first − Input iterators to the initial positions of the searched sequence.

  • last − Input iterators to the final positions of the searched sequence.

  • pred − Unary predicate which takes an argument and returns bool.

Return value

Returns the number of elements in the range for which pred returns true.

Exceptions

Throws an exception if either predicate or an operation on an iterator throws exception.

Please note that invalid parameters cause undefined behavior.

Time complexity

Linear in the distance between first to last.

Example

The following example shows the usage of std::algorithm::count_if() function.

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

bool predicate(int n) {
   return (n > 3);
}

int main(void) {
   vector<int> v = {1, 2, 3, 4, 5};
   int cnt;

   cnt = count_if(v.begin(), v.end(), predicate);

   cout << "There are " << cnt << " numbers are greater that 3." << endl;

   return 0;
}

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

There are 2 numbers are greater that 3.
algorithm.htm
Advertisements