2

私はブール配列として数値を持っていますが、加算や減算などの算術演算とAND、それに類似した他の数値を使用した論理演算を実行する必要があります。すべてのブール固有の計算を処理する必要なしにC++でこの操作を実行するには、どうすればよいでしょうか。例:

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

2 に答える 2

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
于 2013-01-07T22:08:34.223 に答える
1

std::transform2つのコンテナの要素のペアに対して二項演算を実行し、結果を3番目のコンテナに入れることができます。を使用して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>());
于 2013-01-07T22:27:04.680 に答える