唯一关联哈希映射容器与关联哈希映射集装箱的属性是什么
What are the properties of a Unique Associative Hashmap Container vs Associative Hashmap Container
注意:有时答案是"作为用户,你不应该担心实现细节"。我会在这里注意到,这是一个基于我想学习的内容的问题,就像我想实现它一样。
根据SGI:
唯一关联容器是具有属性,容器中的每个键都是唯一的:中没有两个元素唯一关联容器具有相同的键。
我理解这么多。没有进一步解释的是,在密钥唯一和不唯一的情况下,数据是如何存储的(我猜没有解释的原因是它取决于实现)。那么,当键是唯一的时,所有bucket的大小都是1个元素吗?我认为这不是因为冲突,如果是,一旦hasher
确定了bucket编号,并且密钥是唯一的,那么元素如何存储在bucket中?
如果密钥不是唯一的,该怎么办?元素是如何存储的,然后从桶中返回?
如果其他要点与唯一关联容器和关联容器如何存储它们的元素以及它们之间的差异(如果有的话)有关,我也将不胜感激。
键在唯一关联容器中是唯一的。正如您链接的页面上所述,如果您插入了一些带有关键字k的元素e,那么随后对带有相同关键字k的insert()的调用将不会插入新元素。还要注意,从您链接的页面中,count()方法总是返回0或1,该方法返回具有给定键的UAC中的元素数。
你关于"水桶"的问题不清楚。容器如何在后端存储数据——例如,无论哈希映射是否通过链接或其他机制处理冲突——都不应该影响用户。
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 使用 Key 对 C++ 中的哈希映射进行排序. 无法排序
- 哈希映射使用 nullptr c++ 初始化节点的动态数组
- 如何按值对无序哈希映射进行排序
- 哈希映射如何在 c++ 中实现?
- C++中的哈希映射等效
- 以字符串向量作为值的哈希映射
- 来自并发哈希映射的迭代器是否安全
- 如何在这个哈希映射中实现 AVL 树
- 无法迭代结构"string"的哈希映射:[列表] C++
- 什么是最快的解决方案,用于读/写入哈希映射
- 可以安全地依赖unordered_map中的初始化值(哈希映射)
- 使用按插入方式排序的参数创建哈希映射
- 哈希映射没有可行的重载 '='
- 使用分配器对哈希映射进行高效的序列化和反序列化
- 由于动态数组而导致的哈希映射内存泄漏
- 为boost哈希映射定义自定义哈希函数
- 是我们迭代时更改哈希映射的行为,已定义
- 哈希映射和有序遍历
- 哈希映射错误:与调用 '(const __gnu_cxx::.