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