0

参照の実装を指定せずに、また参照のアルゴリズム (md5、sha256 など) を指定せずにハッシュ関数を提供するのはなぜですか?

また、C++ 標準準拠 などのデータ構造にも同様の機能がありますstd::unordered_map/set/multimap/multiset::hash_function

だから私が得られないのは:

  • そのような文書化されていないメソッドを提供する理由
  • 実装の詳細は、ハッシュ関数を正しく使用するための基本です。プログラマーの観点から、これらの関数の目的は何ですか?
  • この関数は、特定のアルゴリズムにリンクできますか?
4

1 に答える 1

3

そのような文書化されていないメソッドを提供する理由

それらは文書化されていません。

実装の詳細は、ハッシュ関数を正しく使用するための基本です。プログラマーの観点から、これらの関数の目的は何ですか?

実装は指定されていません。順序付けされていないコンテナと一緒に使用されることになっています。要素を効果的にバケットに分散するには、可能な限り優れたハッシュ関数にする必要があります。それ以外は未定です。

ユーザー定義型の順序付けられていないコンテナを使用する場合、ユーザーはこれらを提供する必要があることに注意してください。

この関数は、特定のアルゴリズムにリンクできますか?

なぜだめですか?

于 2012-12-24T06:09:14.380 に答える