map(vs)unordered_map with pair as key

时间:2016-12-15 17:07:45

标签: c++ c++14 unordered-map

这会产生编译器错误

unordered_map<pair<int,int>,int> umap;

我知道必须提供散列函数才能使其正常工作。

但是

map<pair<int,int>,int> omap;

完美无需任何哈希函数。

为什么会这样?

1 个答案:

答案 0 :(得分:3)

std::map不使用哈希函数。相反,它的&#34;键是使用比较函数排序的...&#34;其中&#34;搜索,删除和插入操作具有对数复杂度。&#34;。查找是通过遍历搜索树而不是通过散列来完成的。