unordered_map
C++ では、順不同の連想コンテナー ( 、unordered_set
、 など)ごとunordered_multimap
にハッシュ関数を定義する必要があります。ウィキペディアで指摘されているように、
struct X{int i,j,k;};
struct hash_X{
size_t operator()(const X &x) const{
return hash<int>()(x.i) ^ hash<int>()(x.j) ^ hash<int>()(x.k);
}
};
struct hash_X
のカスタムハッシュ関数ですstruct X
。しかし、この関数は何をするのでしょうか? なぜハッシュ関数が必要なのですか? 他のタイプのカスタム ハッシュ関数はありますか? もしそうなら、どのように2つのそのような機能間の効率を比較しますか.