RT,理论上来说unordered_map不能使用pair作为键值,但可以加下面这段代码来实现
struct pair_hash {
template < class T1, class T2 >
size_t operator ( ) ( const pair < T1, T2 > &p ) const {
auto h1 = hash<T1> {}(p.first);
auto h2 = hash<T2> {}(p.second);
return h1 ^ h2 ;
}
};
unordered_map < pair < int, int >, bool, pair_hash > pd ;
但经楼主实测在这样的情况下unordered_map甚至比map要慢得多:
所以在这种情况下map还要快一些是真的吗