1

ある種のキー(ビット配列)->値(整数)マッピングコンテナにデータを保存したいと思います。Bitarray は、最大 32 バイトまで大きくすることができます (おそらく一定のサイズである可能性があります)。

もちろん、標準の std::multimap である可能性があります。

std::multimap my_map;

しかし、キーの一部 (いくつかの位置で 1 または 0 のビット) も検索する必要があり、残りの部分は気にしません。例えば:

マップに挿入:

  • キー b"1010001" の下の値 1、
  • キー b"1010001" の下の値 2、
  • キー b"1000001" の下の値 3
  • キー b"0000001" の下の値 4

次に、値を受け取る必要があります。

  • b"0000001" を探すと 1、2、3、4、
  • b「1000000」を探すと1、2、3、
  • 1、b"1010001" を探すと 2

また、キー値を完全に一致させる機能があると便利です。

ブーストでサポートされている C++ で最も簡単な (しかし効率的な) 方法でそれを達成するにはどうすればよいですか? パフォーマンスに関心があります (最大数百万のキーが存在する可能性があります)。

4

1 に答える 1