【问题标题】:map (vs) unordered_map with pair as keymap (vs) unordered_map 以对为键
【发布时间】:2016-12-15 17:07:44
【问题描述】:

这会产生编译器错误

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

我了解必须提供哈希函数才能使其工作。

但是

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

无需任何散列函数即可完美运行。

为什么会这样?

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多