Given a binary array, the task is to count the number of 1’s and 0’s in this array using STL in C++.
Examples:
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
Approach: We can count the same using count_if() function present in the STL of C++.
Syntax:
count_if(lower_bound, upper_bound, filter_function)
where filter_function is a condition
which filters out elements.
Below is the implementation of the above approach:
#include <bits/stdc++.h>
using namespace std;
bool isOne( int i)
{
if (i == 1)
return true ;
else
return false ;
}
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;
}
|