Biblioteca de algoritmos C ++ - função count_if ()

Descrição

A função C ++ std::algorithm::count_if() retorna o número de ocorrências de valor do intervalo que satisfaz a condição.

Declaração

A seguir está a declaração para o cabeçalho da função std :: algorithm :: count_if () std :: algorithm.

C ++ 98

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

Parâmetros

  • first - Insira iteradores nas posições iniciais da sequência pesquisada.

  • last - Insira iteradores nas posições finais da sequência pesquisada.

  • pred - Predicado unário que recebe um argumento e retorna bool.

Valor de retorno

Retorna o número de elementos no intervalo para o qual pred retorna verdadeiro.

Exceções

Lança uma exceção se um predicado ou uma operação em um iterador lança uma exceção.

Observe que os parâmetros inválidos causam um comportamento indefinido.

Complexidade de tempo

Linear na distância entre o primeiro e o último .

Exemplo

O exemplo a seguir mostra o uso da função std :: algorithm :: count_if ().

#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;
}

Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -

There are 2 numbers are greater that 3.