【发布时间】:2014-07-04 19:37:30
【问题描述】:
我知道unordered_map<T, int> 在从键 O(1) 检索值时会比map<T, int> 在性能方面的效率更高。
但是,我发现unordered_map<T, int> 支持的类型不如map<T, int> 支持的那么多。
例如,map<pair<int, int>, int> 可以,但unordered_map<pair<int, int>, int> 不行。
我想知道这有什么潜在的困难吗?如果关心性能,我可以使用什么数据结构来获得具有 O(1) 性能的键类型对的哈希表。
【问题讨论】:
-
不清楚您是在问为什么它不能开箱即用,还是想知道如何让它发挥作用。到目前为止的答案都是针对后者。
-
@juanchopanza,非常好的观点。我更新以尝试解决第一个问题。
-
@merlin2011 好吧,我会解释为问“为什么
std::hash不专门用于std:pair<T, T>,其中T是std::hash的类型专业的:-) -
这是一个更好的副本:stackoverflow.com/a/7222201/390913