我有一個數字作爲布爾型數組,但我需要做的算術運算,如加,減和邏輯,如AND
它與其他數字相似。如何在C++中執行此操作而無需處理所有布爾型特定的計算,並簡單地執行此操作。 一個例子:C++添加兩個布爾型數組
bool a[10];
bool b[10];
bool c[10];
c = a + b;
我有一個數字作爲布爾型數組,但我需要做的算術運算,如加,減和邏輯,如AND
它與其他數字相似。如何在C++中執行此操作而無需處理所有布爾型特定的計算,並簡單地執行此操作。 一個例子:C++添加兩個布爾型數組
bool a[10];
bool b[10];
bool c[10];
c = a + b;
可以使用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
好吧,當我們在它時,他可以使用'int' –
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>());
我不認爲你將能夠做,沒有這樣做......我的意思是,我不認爲這是已經實現的。 –
*如何在C++中執行此操作而無需處理所有布爾特定的計算,並且只需執行* 您不能。 –