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

📅  最后修改于: 2023-12-03 15:36:35.429000             🧑  作者: Mango

使用C++中的STL计算二进制数组中1和0的数量

在C++中,STL(标准模板库)提供了许多有用的容器和算法来简化编程工作。本文将介绍如何使用STL计算二进制数组中1和0的数量。

问题描述

给定一个二进制数组,需要计算其中1和0的数量。

例如,对于以下二进制数组:

int arr[] = {1, 0, 0, 1, 0, 1, 1, 0};

我们需要计算出其中1的数量为4,0的数量为4。

解决方案
计算1的数量

为了计算二进制数组中1的数量,我们可以使用std::count()算法,该算法可以用来计算序列中等于给定值的元素数量。

int count_ones = std::count(arr, arr + sizeof(arr) / sizeof(int), 1);

上述代码使用std::count()算法计算二进制数组中等于1的元素数量。arr为二进制数组的指针,arr + sizeof(arr) / sizeof(int)表示序列中的最后一个元素的下一个位置的指针,即数组的结束指针。最后一个参数1表示需要计数的元素值。

计算0的数量

与计算1的数量类似,我们可以使用std::count()算法计算二进制数组中0的数量。

int count_zeros = std::count(arr, arr + sizeof(arr) / sizeof(int), 0);

上述代码使用std::count()算法计算二进制数组中等于0的元素数量。最后一个参数改为0即可。

完整代码
#include <iostream>
#include <algorithm>

int main()
{
    int arr[] = {1, 0, 0, 1, 0, 1, 1, 0};

    int count_ones = std::count(arr, arr + sizeof(arr) / sizeof(int), 1);
    int count_zeros = std::count(arr, arr + sizeof(arr) / sizeof(int), 0);

    std::cout << "Number of ones: " << count_ones << std::endl;
    std::cout << "Number of zeros: " << count_zeros << std::endl;

    return 0;
}

输出:

Number of ones: 4
Number of zeros: 4
结论

本文介绍了如何使用STL计算二进制数组中1和0的数量。使用std::count()算法可以轻松地完成计数任务。