¿Cuenta el número de 1 y 0 en una array binaria usando STL en C++?

Dado un arreglo binario, la tarea es contar el número de 1 y 0 en este arreglo usando STL en C++.

Ejemplos:

Input:  arr[] = {1, 0, 0, 1, 0, 0, 1}
Output: 1's = 3, 0's = 4

Input:  arr[] = {1, 1, 1, 1, 0, 0, 1}
Output: 1's = 5, 0's = 2

Enfoque: Podemos contar lo mismo usando la función count_if() presente en el STL de C++.

Sintaxis:

count_if(lower_bound, upper_bound, filter_function)

where filter_function is a condition
which filters out elements.

A continuación se muestra la implementación del enfoque anterior:

// C++ program to Count
// the number of 1's and 0's
// in a binary array
  
#include <bits/stdc++.h>
using namespace std;
  
// Function to check
// if bit is 1 or not
bool isOne(int i)
{
    if (i == 1)
        return true;
    else
        return false;
}
  
// Driver Code
int main()
{
  
    int a[] = { 1, 0, 0, 1, 0, 0, 1 };
  
    int n = sizeof(a) / sizeof(a[0]);
  
    int count_of_one = count_if(a, a + n, isOne);
  
    cout << "1's: " << count_of_one << endl;
    cout << "0's: " << (n - count_of_one) << endl;
  
    return 0;
}
Producción:

1's: 3
0's: 4

Publicación traducida automáticamente

Artículo escrito por namankhare42 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 *