contar_si() en C++ STL

La función count_if() devuelve el número de elementos en un rango que satisfacen la condición.

Sintaxis: 

template <class InputT, class UnaryPredicate>
typename iterator_traits <InputT> :: difference_type
    count_if(InputT first, InputT last, UnaryPredicate p);

Ejemplos: 
 

Input: 0 1 2 3 4 5 6 7 8 9
Output: Total no of even numbers is: 5

Input: 2 3 4 5 6 7 8 9 10 11 12 13
Output: Total no of even numbers is: 6

La función count_if toma tres parámetros, los dos primeros de los cuales son la primera y la última posición de la secuencia de los elementos (donde la última posición no está incluida en el rango) mientras que el tercer parámetro es un predicado unario (toma un solo argumento para comprueba la condición y devuelve verdadero o falso) que toma el elemento de la secuencia dada uno por uno como parámetro y devuelve un valor booleano en función de la condición 
especificada en esa función. Una cosa que debemos tener en cuenta es que el tipo de predicado debe ser el mismo que el tipo de contenedor. 

Luego, count_if() devuelve el número de elementos en la secuencia dada para los cuales la función de comparación 
(tercer parámetro) devuelve verdadero.
 

CPP

// C++ program to show the working
// of count_if()
#include <bits/stdc++.h>
using namespace std;
 
// Function to check the
// number is even or odd
bool isEven(int i)
{
    if (i % 2 == 0)
        return true;
    else
        return false;
}
 
// Drivers code
int main()
{
    vector<int> v;
    for (int i = 0; i < 10; i++) {
        v.push_back(i);
    }
    int noEven = count_if(v.begin(), v.end(),
                                     isEven);
 
    cout << "Total no of even numbers is: "
         << noEven;
 
    return 0;
}
Producción: 

Total no of even numbers is: 5

 

Publicación traducida automáticamente

Artículo escrito por Prateek Sharma 7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *