给定一个二进制数组,任务是使用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等的更多准备工作,请参阅“完整面试准备课程” 。