正直に言うと、私はしばらく C++ を使用していませんでしたが、今は使用しなければならないのではないかと心配しており、少し錆びています。
ビットマップが必要であり、パフォーマンスを気にします。ビットマップのサイズは 25 ビットではなくなります。
unsigned int を使おうと考えていたのですが、残念ながら c/c++ での実装方法を覚えていません
unsigned int は通常の 2 進数として実装されていますか?
また、ビットマップに関する他の提案も受け付けています。
助けてくれてありがとう!
2672 次
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 に答える