2013-01-07 94 views
2

我有一個數字作爲布爾型數組,但我需要做的算術運算,如加,減和邏輯,如AND它與其他數字相似。如何在C++中執行此操作而無需處理所有布爾型特定的計算,並簡單地執行此操作。 一個例子:C++添加兩個布爾型數組

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

我不認爲你將能夠做,沒有這樣做......我的意思是,我不認爲這是已經實現的。 –

+0

*如何在C++中執行此操作而無需處理所有布爾特定的計算,並且只需執行* 您不能。 –

回答

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

好吧,當我們在它時,他可以使用'int' –

1

std::transform可以從兩個容器上執行對元素的二元運算,並將結果放入第三個容器中。您可以使用std::logical_and,並std::logical_or得到你想要的結果:

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

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