529得票15回答
在关键字较为简单的情况下,使用map与unordered_map相比有什么优势吗?

最近听了有关C++中的unordered_map的讲座后,我意识到大多数情况下应该使用unordered_map而不是map,因为它具有更高效的查找能力(平均O(1)与O(log n)相比)。我使用map的大部分时候,都会使用int或std::string作为键类型;因此,对于哈希函数的定义,...

410得票8回答
C++使用自定义类类型作为键的unordered_map

我正在尝试将自定义类用作unordered_map的键,如下所示:#include <iostream> #include <algorithm> #include <unordered_map> using namespace std; class n...

144得票5回答
在std::map和std::unordered_map之间做出选择

现在std中有一个真正的哈希映射unordered_map,那么在实际存在它的系统上,为什么(或何时)我仍然想使用老旧的map而不是unordered_map呢?有没有任何明显的情况是我立即看不到的?

128得票9回答
为什么我不能编译一个以pair为键的unordered_map?

我试图创建一个 unordered_map 用于将一对整数进行映射:#include <unordered_map> using namespace std; using Vote = pair<string, string>; using Unordered_map...

122得票3回答
如何在无序容器中为用户定义的类型专门设计std::hash<Key>::operator()函数?

支持在std :: unordered_set&lt;Key&gt;和std :: unordered_map&lt;Key,Value&gt;中使用用户定义的键类型, 需要提供operator ==(Key,Key)和一个哈希函数:struct X { int id; /* ... */ }...

112得票5回答
如何在map和unordered_map之间选择?

假设我想用字符串作为键来映射数据。应该选择哪个容器,map 还是 unordered_map?假设内存不是问题,关注的是速度,unordered_map 通常会给出平均复杂度 O(1),最坏情况下为 O(n)。 什么情况下会达到 O(n)?在什么情况下 map 比 unordered_map ...

106得票1回答
如何实现 std::unordered_map

C++ unordered_map 碰撞处理、调整大小和重新哈希 这是我之前提出的问题,我发现我对unordered_map的实现方式很困惑。我相信许多人和我一样也感到困惑。根据我所知道的信息,未读取标准: 每个unordered_map实现都在桶数组中存储指向外部节点的链表...不...

83得票6回答
从unordered_map获取键和值列表

从unordered_map中获取键和值的列表(作为vector)最有效的方法是什么? 为了具体说明,假设所讨论的映射关系为unordered_map&lt;string, double&gt;。然后,我想将键作为vector&lt;string&gt;获取,并且将值作为vector&lt;...

82得票2回答
C++ std::unordered_map使用的默认哈希函数是什么?

我正在使用 unordered_map&lt;string, int&gt; 和unordered_map&lt;int, int&gt; 在每种情况下使用了哪个哈希函数,每种情况下发生碰撞的概率是多少?我将分别插入唯一的字符串和唯一的整数作为键。 我想知道在字符串和整数键的情况下哈希函数的...

74得票2回答
C++ STL中的unordered_map如何解决哈希冲突?

C++ STL unordered_map是如何解决冲突的? 根据http://www.cplusplus.com/reference/unordered_map/unordered_map/所述,"唯一的键 容器中没有两个元素可以具有等效的键。" 这应该意味着容器确实正在解决冲突。然而,...