c ++添加两个bool数组

时间:2013-01-07 22:04:01

标签: c++ boolean

我有一个数字作为bool数组但是我需要对其进行算术运算,例如加法和减法以及AND之类的逻辑运算,以及其他与之类似的数字。如何在C ++中执行此操作而无需处理所有特定于布尔值的计算,并且可以简单地完成。 一个例子:

bool a[10];
bool b[10];
bool c[10];
c = a + b; 

2 个答案:

答案 0 :(得分:8)

您可以使用std::bitset

#include <bitset>

std::bitset<10> a(4);
std::bitset<10> b("0000001000");

std::bitset c = a.to_ulong() + b.to_ulong();

//Etc.
//You can also use
a[0] = 4; a[1] = 5; //to initialize / access

答案 1 :(得分:1)

std::transform可以对来自两个容器的元素对执行二进制操作,并将结果放入第三个容器中。您可以使用std::logical_andstd::logical_or来获得所需的结果:

transform(a, a+10,
          b, b+10,
          c, logical_and<bool>());

transform(a, a+10,
          b, b+10,
          c, logical_or<bool>());