3

私は彼らができることを望んでいるように感じますが、ベクトルはビットセットメンバー関数にアクセスできますか?

たとえば、次のようなことができますか。

vector<bool> myvector;
myvector.count();
myvector.test(1);

そうでない場合は、標準の C++ ライブラリを使用してビットセットを動的に作成する方法はありますか?

編集:

特定のビットセット関数 (test、count) を使用し、コンストラクターを使用したいbitset (unsigned long val)

val基本的に、任意のビットセットを作成してから、テストとカウントでいくつかの操作を実行したいと考えています。次に、デクリメントされた値でビットセットの割り当てを解除して再作成したいと思います。val が 8 未満になるまでこれを続けたいと思います。

ただし、動的なビットセットを作成することは可能ではないようで、動的なベクトルを使用すると、いくつかの優れたビットセット関数を使用できるようになります。

4

2 に答える 2

-1

私はすでに同様の質問に答えているので、高速ビットスキャン用に特別に設計された動的ビットセットのフレームワークであるBITSCANをお勧めします。Linux および Windows でテスト済みです。STL ビットセットと Boost の dynamic_bitset との比較こちら入手できます。

于 2014-07-28T16:39:55.710 に答える
-4

実際には動的ビットセットは必要ないようです。std::bitsetコピー割り当て可能であるため、次のことができます。

const size_t size = sizeof(unsigned long) * CHAR_BIT;
typedef std::bitset<size> my_bitset;

unsigned long val = 42;
my_bitset bs(val);

/* do work */

bs = my_bitset(--val); // assign with new, decremented val
于 2013-03-02T13:17:23.863 に答える