ハッシュに基づいて、一連の特異値または構造体/クラス(一度に複数の値がハッシュされることを意味します)にインデックスを付けたいと思います。
ハッシュ関数をコーディングしたので、値、構造体、またはクラスのダイジェストを提供するのに問題はありません。問題は次のとおりです。
- C ++ではハッシュベースのデータ構造が実際にサポートされていますか?
std::map
たとえば、の些細な使用に代わるより良い方法があり、そのために2つ以上のフィールドを持つように設計されたコンテナがあるかどうかを意味 します(データ構造に実際に必要なフィールドの数はまだ決定していません)。 - 断片化されたデータ構造を管理して10^5レコードに簡単に到達することを計画しているので、メモリ内の巨大なデータ構造を直接処理することを避け、構造の不要な部分を割り当てることが重要です。
- この構造をディスクに保存したい場合は、シリアル化が唯一のオプションですか?
私のハッシュ関数がhash::digest()
、適切なデータ構造の使用法に関する例を含む実際のコードへの最小限の参照に感謝するとします。
ありがとう。
編集:
次の理由から、順序付けられていないデータ構造を避けたいと思います。
- 悪い分岐予測
- それらは注文されていないため、効果的な方法で分割することはできません
- 私の主な焦点は、この構造とその断片化の管理についてです。