unordered-map相关内容

C++ std::unordered_map 复杂度

我已经阅读了很多关于 unordered_map (c++11) 时间复杂度在stackoverflow,但我还没有找到我的问题的答案. 假设按整数索引(仅举例): Insert/at 函数持续工作(平均时间),所以这个例子需要 O(1) std::unordered_map;我的地图 = {{ 1, 1},{ 100, 2},{ 100000, 3 }}; 我很好奇的是遍历存储在 ..
发布时间:2022-01-24 11:39:51 C/C++开发

Unordered_Map 查找时间

C++ 库中的内置映射和集合(包括 unordered_map 和 multimap)要求 find 函数(用于查找特定元素)使用迭代器来遍历元素.C++ 参考站点声称使用这些数据结构查找元素平均需要恒定时间,就像常规哈希表一样.但是迭代器在找到元素之前是否必须遍历整个列表,平均花费 O(n) 时间? 解决方案 你的说法不正确: map、set、multimap 和 multiset ..
发布时间:2022-01-08 14:29:22 其他开发

hash_map/unordered_map 中的项目顺序是否稳定?

是否保证当一个 hash_map/unordered_map 加载相同的项目时,它们在迭代时将具有相同的顺序?基本上我有一个从文件加载的哈希图,我会定期将有限数量的项目提供给例程,然后释放哈希图.消费完项目后,我将相同的文件重新加载到哈希图中,并希望在我上次停止的点之后获取下一批项目.我停止的点将由钥匙识别. 解决方案 从技术上讲,不保证它们按任何特定顺序排列. 然而,在实践中,鉴于 ..
发布时间:2022-01-08 14:23:12 C/C++开发

hash_map 和 unordered_map 的区别?

最近发现C++中hash map的实现会叫unordered_map. 当我查看他们为什么不只是使用 hash_map 时,我发现显然 hash_map 的实现存在兼容性问题,即 unordered_map 解析(更多关于它这里). 那个 wiki 页面没有提供更多信息,所以我想知道是否有人知道 unordered_map 解决的 hash_map 的一些问题. 解决方案 由于 ..
发布时间:2022-01-08 14:12:13 C/C++开发

unordered_map 真的是无序的吗?

我对“unordered_map"这个名字感到很困惑.顾名思义,键根本没有排序.但我一直认为它们是按哈希值排序的.还是说错了(因为名字暗示它们不是有序的)? 或者换个说法:这是这个 typedef map;>哈希映射; 与 template结构 HashComp {布尔运算符()(v1)() ..
发布时间:2022-01-08 14:02:01 C/C++开发

std::unordered_map 是如何实现的

c++ unordered_map 碰撞处理、调整大小和重新散列 这是我之前提出的一个问题,我发现我对 unordered_map 的实现方式有很多困惑.我相信很多其他人也和我一样困惑.根据我没有阅读标准就知道的信息: 每个 unordered_map 实现都存储一个链表到外部桶数组中的节点......不,这根本不是为大多数常见用途实现哈希映射的有效方法.不幸的是,规范中的一个小“疏忽 ..
发布时间:2022-01-08 13:39:42 C/C++开发

你什么时候使用 std::unordered_map::emplace_hint ?

我知道如何使用 std::unordered_map::emplace,但我如何使用 emplace_hint?cplusplus 和 cppreference 提供了一组示例来说明我们如何知道将元素放在哪里. 谁能提供一些关于此的信息或提供一些示例/插图,说明我们何时可能知道放置的元素应该去哪里? 解决方案 unordered_map 可以用提示做什么?好吧,如果迭代器使用与 em ..
发布时间:2022-01-07 11:51:09 C/C++开发

为什么我不能用 std::unordered_map 替换 std::map

这个问题可能有点粗略,因为我家里没有可用的代码,但我知道这件事否则会困扰我整个周末. 当我尝试将一些代码更新到 C++11 时,我开始用 std::unordered_map 替换一些 std::map.该代码仅使用 std::map::find() 来访问地图中的特定元素,因此我认为替换应该很容易.返回的迭代器被存储在一个 auto 类型的变量中(auto res = map.find( ..
发布时间:2022-01-07 11:22:23 C/C++开发

C++ STL unordered_map 如何解决冲突?

C++ STL unordered_map 如何解决冲突? 查看http://www.cplusplus.com/reference/unordered_map/unordered_map/,它说“唯一键容器中的任何两个元素都不能具有相同的键." 这应该意味着容器确实正在解决冲突.但是,该页面并没有告诉我它是如何做的.我知道一些解决冲突的方法,比如使用链表和/或探测.我想知道的是c++ ..
发布时间:2022-01-07 11:03:13 C/C++开发

C++ stl unordered_map 实现,参考有效性

对于 std::map 和 std::tr1::unordered_map,我从标准中看到: 对 unordered_map 容器中元素的引用在所有情况,即使在重新哈希后也是如此. 他们是如何做到这一点的(实施方面)?他们是否将所有条目维护为一种链表,然后哈希表只存储指向元素的指针? 解决方案 是的,涉及到链表,虽然不像你建议的那样. 2011 标准说(23.2.5 第 ..
发布时间:2022-01-05 12:07:03 C/C++开发

用户定义类的哈希函数.如何结交朋友?:)

我有一个 C 类,它有一个 string* ps 私有数据成员. 现在,我想要一个 unordered_map,我需要一个自定义哈希函数. 根据 c++ 参考,我可以这样做 命名空间标准{模板类哈希{上市:size_t operator()(const C &c) const{返回 std::hash()(*c.ps);}};} 问题是我似乎无法让 operator() 和 C 成 ..
发布时间:2021-12-27 16:29:56 C/C++开发

整数对哈希函数的错误

我有以下带有 unordered_map 成员的类,以及为 pair 定义的散列函数 类 abc{上市 :unordered_map , 整数 >规则;未签名节点;未签名的数据包;};命名空间标准{模板 类哈希>{上市 :size_t operator()(const pair &x) const{size_t h = std::hash()(x.first) ^ s ..
发布时间:2021-12-27 16:20:55 C/C++开发