【问题标题】:What are the properties of a Unique Associative Hashmap Container vs Associative Hashmap ContainerUnique Associative Hashmap Container vs Associative Hashmap Container的属性是什么
【发布时间】:2012-01-19 18:41:10
【问题描述】:

注意:有时答案是“作为用户,您不应该担心实施细节”我会在这里指出,这是一个基于我想学习的问题,就好像我想实施一样它。

根据SGI

唯一关联容器是具有 容器中的每个键都是唯一的属性:容器中没有两个元素 唯一关联容器具有相同的键。

我明白了。没有进一步解释的是,在密钥是唯一的和不是唯一的情况下,数据是如何存储的(我猜这没有解释的原因是它依赖于实现)。那么,当键是唯一的时,所有桶的大小都是 1 个元素吗?我认为不是因为冲突,如果是这样,一旦桶号由hasher 确定,并且如果键是唯一的,那么元素如何存储在桶本身中?

如果键不是唯一的怎么办?元素如何存储然后返回到桶/从桶返回?

如果其他点与 Unique Associative ContainerAssociative Container 如何存储它们的元素以及它们之间的差异(通常)相关,我也将不胜感激(如果有的话)。

【问题讨论】:

    标签: c++ hashmap


    【解决方案1】:

    在唯一关联容器中是唯一的。如您链接的页面上所述,如果您使用键 k 插入一些元素 e,则使用相同键 k 对 insert() 的后续调用将不会插入新元素。另请注意,从您链接的页面中,count() 方法返回具有给定键的 UAC 中的元素数,始终返回 0 或 1。

    您关于“桶”的问题不清楚。容器如何在后端存储数据(例如,哈希映射是否通过链接或其他机制处理冲突)不应影响您作为用户。

    【讨论】:

    • 我作为一个实施者来问。我想了解这一点,而不仅仅是忽略实现细节。
    • 唯一关联容器规范本身并没有指定分桶方案,因此只要您遵守我上面列出的规范的细节(处理键实际上相等而不是仅仅存储在一起的情况。)
    • @Samaursa:我想每个存储桶通常都包含几个彼此不同的键。
    猜你喜欢
    • 2023-01-17
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    • 2014-04-11
    • 2015-06-17
    • 1970-01-01
    相关资源
    最近更新 更多