16

一意の要素を見つける必要がある配列に関する質問を練習しています。このための私のロジックは、配列内の最大要素を見つけて、そのビットセットを定義することです。しかし、問題は bitset が一定の値を必要とするため、これを克服する方法です。これに関する私の質問の一部を以下に示します。

a) 万が一、ビットセットを可変サイズで定義できますか?
b)そうでない場合、vector<bool>またはを使用するための最良のアプローチは何vector<char>ですか?
c)ブーストには動的ビットセットがあることは知っていますが、学習のためにこれを行っているため、代替アプローチについて知りたいです。

4

1 に答える 1

20

テンプレートは、std::bitset<N>あらかじめ固定サイズが必要です。これstd::vector<bool>は、可変長ビットベクトルを提供する C++ 標準の方法であり、拡張および縮小できるビットセットと同様の機能を提供します。

vector<char>orを使用する方が良いか悪いかについてvector<bool>vector<bool>、この目標を達成するためのはるかに直接的な方法です。vector<char>私はそれを使用することから始めて、パフォーマンスが許容できない場合に切り替えます. 一般に、最初に最もクリーンで簡単な実装を作成してから、後で最適化することをお勧めします。

お役に立てれば!

于 2013-01-21T06:51:11.040 に答える