Biblioteca de algoritmos C ++ - función count_if ()

Descripción

La función C ++ std::algorithm::count_if() devuelve el número de ocurrencias de valor del rango que satisface la condición.

Declaración

A continuación se muestra la declaración de la función std :: algorítm :: count_if () del encabezado std :: algorítmico.

C ++ 98

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

Parámetros

  • first - Ingrese iteradores a las posiciones iniciales de la secuencia buscada.

  • last - Ingrese iteradores a las posiciones finales de la secuencia buscada.

  • pred - Predicado unario que toma un argumento y devuelve bool.

Valor devuelto

Devuelve el número de elementos en el rango para los que pred devuelve verdadero.

Excepciones

Lanza una excepción si el predicado o una operación en un iterador arroja una excepción.

Tenga en cuenta que los parámetros no válidos provocan un comportamiento indefinido.

Complejidad del tiempo

Lineal en la distancia entre el primero y el último .

Ejemplo

El siguiente ejemplo muestra el uso de la función std :: algorítm :: 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;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

There are 2 numbers are greater that 3.