皆さん、問題を解決するために動的計画法のアプローチを使用しています。アプローチの簡単な概要は次のとおりです。
- 生成された各値は、25 個の一意のキーを使用して識別されます。
- これらの 25 個のキーを使用して、boost::hash_combineを使用してハッシュ テーブルのシードを生成します。
として宣言されたハッシュテーブルに値を保存します
boost::unordered_map<Key_Object, Data_Object, HashFunction> hashState;
アルゴリズムの時間プロファイリングを行ったところ、実行時間のほぼ95%がデータの取得/ハッシュ テーブルへの挿入に費やされていることがわかりました。
これらは私のハッシュテーブルの詳細でした
hashState.size() 1880
hashState.load_factor() 0.610588
hashState.bucket_count() 3079
hashState.max_size() 805306456
hashState.max_load_factor() 1
hashState.max_bucket_count() 805306457
次の2つの質問があります
ハッシュ テーブルの挿入/取得操作のパフォーマンスを向上させるためにできることはありますか?
C++ STL には、私の要件にも合う hash_multimap があります。ライブラリunordered_mapは、挿入/取得のパフォーマンスに関してhash_multimapとどのように比較されますか。