37得票7回答
判断无序映射的无序映射是否包含键的最简方法

我正在使用一个无序映射的嵌套,以便我可以使用“多键”语法引用元素:my_map[k1][k2]。是否有一种便捷的方法来在尝试访问它之前检查元素是否存在呢?如果没有,最简单的方法是什么?

11得票2回答
Boost.Intrusive和unordered_map

我想要使用一个侵入式的unordered_map。但是库中只有一个unordered_set。还有一个侵入式的哈希表,但我不确定它是否具有相同的功能,而且它的接口也不同。 如果我错了并且错过了unordered_map的链接,那请告诉我。 如果我没有错,是否有教程可以帮助我实现一个unorde...

7得票1回答
在不需要默认构造函数的情况下向unordered_map中插入或更新元素

我有一个 std::unordered_map,我想向其中添加一个键值对。如果该键还不存在,则希望将其添加,并赋予所给定的值。如果键已经存在,则希望更新其对应的值。 标准建议似乎是使用 operator[]。但这需要 map 的值类型具有默认构造函数。我不想提供默认构造函数。我该怎么办?

11得票4回答
使用数组作为键的unordered_map

我不明白为什么我不能使用一个array<int, 3>作为键类型来创建一个unordered_map。#include <unordered_map> using namespace std; int main() { array<int,3> ...

17得票4回答
unordered_map过度调用哈希函数

以下代码会导致调用哈希函数而无法解释的结果:namespace foo { using Position = tuple <int, int, int>; std::ostream& operator<<(std::ostream&am...

7得票1回答
C++: std::unordered_map是否保证是基于节点的?

std::unordered_map<K, V>的典型布局是什么?K和V对象是存储在桶中,还是桶中存储指向包含键和值的节点的指针? 我正在尝试弄清楚使用std::unordered_map<K,V>与std::unordered_map<K,V*>的性能影...

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

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

10得票2回答
std::unordered_map::extract 引用/指针失效

针对新的C++17 std::unordered_map::extract函数,文档说明如下: 仅将节点提取出来不会使未删除元素的相对顺序发生变化,并且仅会使到被提取的元素的迭代器失效。提取元素后,对该元素的指针和引用仍然有效,但是在元素由节点句柄拥有时无法使用:如果将元素插入容器中,...

51得票1回答
哈希表和无序映射之间有什么区别?

我最近发现C++中哈希映射的实现将被称为unordered_map。 当我查找为什么他们不只使用hash_map时,我发现显然存在与hash_map实现相关的兼容性问题,而unordered_map解决了这些问题(更多信息请参见此处)。 该维基页面没有提供更多信息,因此我想知道是否有人了解...

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

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