map (vs) unordered_map 以对为键
Posted
技术标签:
【中文标题】map (vs) unordered_map 以对为键【英文标题】:map (vs) unordered_map with pair as key 【发布时间】:2016-12-15 17:07:44 【问题描述】:这会产生编译器错误
unordered_map<pair<int,int>,int> umap;
我了解必须提供哈希函数才能使其工作。
但是
map<pair<int,int>,int> omap;
无需任何散列函数即可完美运行。
为什么会这样?
【问题讨论】:
它产生了什么编译器错误? ideone.com/lgS58Z 【参考方案1】:std::map 不使用散列函数。相反,它的“使用比较函数对键进行排序......”其中“搜索、删除和插入操作具有对数复杂度。”。查找是通过遍历搜索树而不是通过散列来完成的。
【讨论】:
以上是关于map (vs) unordered_map 以对为键的主要内容,如果未能解决你的问题,请参考以下文章
Qt - std::unordered_map - 销毁时间
在 Visual Studio 中放置并插入 unordered_map?
无法创建元组的 unordered_map<int, int, int>