unordered_map<float, unsigned short>C++ でハッシュ テーブルを実装するために を使用しています。
フロートをハッシュ テーブルのキーとして使用することは、ほとんどの状況で悪い考えであることはわかっています。それらを比較するとエラーが発生しやすくなるからです。ただし、このような状況では、大きなファイルから float を読み込んでおり、その精度は既知で一定です。
unordered_mapただし、衝突の頻度を推定するためにフロートをハッシュする方法の詳細を知りたいです。を作成するときに、デフォルトのハッシュ実装をオーバーライドしていませんunordered_map。ドキュメントによると、デフォルトのハッシュ関数はstd::hash<Key>. 私の場合はどれですかstd::hash<float>。しかし、ドキュメントを見ると、 「 、、、および組み込み整数型のstd::hashテンプレート引数」に対してのみ定義されています。char*const char*cropewrope
値をunordered_mapに追加するときに、値をハッシュするためにどの関数が呼び出されているか知っている人はいますか?
unordered_map- http://msdn.microsoft.com/en-us/library/bb982522.aspx
std::hash- http://www.sgi.com/tech/stl/hash.html#1