Compartir a través de


count_if

Devuelve el número de elementos en un intervalo cuyos valores satisfacen una condición especificada.

template<class InputIterator, class Predicate>
   typename iterator_traits<InputIterator>::difference_type count_if(
      InputIterator _First, 
      InputIterator _Last,
      Predicate _Pred
   );

Parámetros

  • _First
    Un iterador de entrada que dirige la posición del primer elemento del intervalo que se buscará.

  • _Last
    Un iterador de entrada que dirige la posición una más allá del último elemento en el intervalo que se buscará.

  • _Pred
    Objeto definido por el usuario de la función de predicado que define la condición que se completará si se va un elemento a ser contado.Un predicado toma el único argumento y devuelve TRUE o Falso.

Valor devuelto

El número de elementos que cumplen la condición especificada por el predicado.

Comentarios

Esta función de plantilla es una generalización del algoritmo recuento, reemplazando el predicado “equals un valor concreto” con un predicado.

Ejemplo

// alg_count_if.cpp
// compile with: /EHsc
#include <vector>
#include <algorithm>
#include <iostream>

bool greater10(int value)
{
    return value >10;
}

int main()
{
    using namespace std;
    vector<int> v1;
    vector<int>::iterator Iter;

    v1.push_back(10);
    v1.push_back(20);
    v1.push_back(10);
    v1.push_back(40);
    v1.push_back(10);

    cout << "v1 = ( ";
    for (Iter = v1.begin(); Iter != v1.end(); Iter++)
        cout << *Iter << " ";
    cout << ")" << endl;

    vector<int>::iterator::difference_type result1;
    result1 = count_if(v1.begin(), v1.end(), greater10);
    cout << "The number of elements in v1 greater than 10 is: "
         << result1 << "." << endl;
}
  

Requisitos

encabezado: <algoritmo>

espacio de nombres: std

Vea también

Referencia

count_if (STL Samples)

Biblioteca de plantillas estándar