3
順序付けされていないコンテナでユーザー定義型のstd :: hash <Key> :: operator()を特化する方法は?
で、ユーザー定義のキータイプをサポートするために、std::unordered_set<Key>そしてstd::unordered_map<Key, Value> 一つが提供しなければならないoperator==(Key, Key)とハッシュファンクタ: struct X { int id; /* ... */ }; bool operator==(X a, X b) { return a.id == b.id; } struct MyHash { size_t operator()(const X& x) const { return std::hash<int>()(x.id); } }; std::unordered_set<X, MyHash> s; コンパイラとライブラリに付属する型の場合のように、typeのデフォルトのハッシュだけstd::unordered_set<X> で記述する方が便利ですX。相談後 C ++標準ドラフトN3242§20.8.12 [unord.hash]および§17.6.3.4[hash.requirements]、 Boost.Unordered g ++ include\c++\4.7.0\bits\functional_hash.h VC10 …