区分unordered_map与地图

时间:2015-06-15 20:03:38

标签: c++ c++11 stl

unordered_map和C ++ STL的映射有什么区别。 请解释复杂性和使用方法。

我用unordered_map替换地图,而我早些时候接受了超时限制。

我们应该在哪里使用地图和无序地图

1 个答案:

答案 0 :(得分:0)

std::map保证了搜索,插入和删除的O(log N)复杂度。它使用比较运算符,迭代按照该比较运算符定义的顺序进行。

std::unordered_map仅保证搜索,插入和删除的O(N)复杂度,您通常期望它是O(M),其中M是(或多或少)个人密钥的大小。假设密钥相对于项目数量较小,则基本上为O(1)。