📌  相关文章
📜  使用C++中的STL计算二进制数组中1和0的数量?

📅  最后修改于: 2021-05-30 17:25:29             🧑  作者: Mango

给定一个二进制数组,任务是使用C++中的STL计算该数组中1和0的数量。

例子:

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

方法:我们可以使用C++的STL中存在的count_if()函数进行计数。

句法:

count_if(lower_bound, upper_bound, filter_function)

where filter_function is a condition
which filters out elements.

下面是上述方法的实现:

// C++ program to Count
// the number of 1's and 0's
// in a binary array
  
#include 
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;
}
输出:
1's: 3
0's: 4
想要从精选的最佳视频中学习和练习问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”