1

正直に言うと、私はしばらく C++ を使用していませんでしたが、今は使用しなければならないのではないかと心配しており、少し錆びています。
ビットマップが必要であり、パフォーマンスを気にします。ビットマップのサイズは 25 ビットではなくなります。
unsigned int を使おうと考えていたのですが、残念ながら c/c++ での実装方法を覚えていません

unsigned int は通常の 2 進数として実装されていますか?
また、ビットマップに関する他の提案も受け付けています。
助けてくれてありがとう!

4

4 に答える 4

5

std::bitset<25>ヘッダーの を使用し<bitset>ます。bitsetでインデックスを付けることができ[]、テンプレートであるため、unsigned intすべての操作がインライン化された (または同等の) だけに展開される可能性があります。

于 2011-03-26T10:40:13.477 に答える
4

ヘッダー ファイルからstd::bitsetを検討しましたか?<bitset>

例:

#include <iostream>
#include <bitset>

int main() {
        std::bitset<25> bits(146);
        std::cout << bits << std::endl;

        //using operator[] to access individual bit manually!
        for(size_t i = 0 ; i < bits.size() ; ++i)
           std::cout << bits[i] << " ";
        return 0;
}

出力:

0000000000000000010010010
0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

注: bits[0]は最下位ビット、bits[bits.size()-1]は最上位ビットです!

オンラインデモ: http://ideone.com/3sSF0

于 2011-03-26T10:41:26.373 に答える
0

代わりにビットセットを検討してください。

于 2011-03-26T10:40:53.360 に答える
0

十分なビットがあると仮定すると、ビットマップに整数型を使用できるはずです。

ただし、<bitset>標準ライブラリには があります。

于 2011-03-26T10:41:44.263 に答える