私はブール配列として数値を持っていますが、加算や減算などの算術演算とAND
、それに類似した他の数値を使用した論理演算を実行する必要があります。すべてのブール固有の計算を処理する必要なしに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
std::transform
2つのコンテナの要素のペアに対して二項演算を実行し、結果を3番目のコンテナに入れることができます。を使用して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>());