C++ 唯一关联Hashmap容器与关联Hashmap容器的特性是什么

C++ 唯一关联Hashmap容器与关联Hashmap容器的特性是什么,c++,hashmap,C++,Hashmap,注意:有时答案是“作为一个用户,你不应该担心实现细节”,我会在这里注意到,这是一个基于我想要学习的内容的问题,就像我想要实现它一样 根据: 唯一关联容器是具有 属性,表示容器中的每个键都是唯一的:容器中没有两个元素 唯一关联容器具有相同的键 我明白这一点。没有进一步解释的是,在键唯一和不唯一的情况下,数据是如何存储的(我猜没有解释的原因是它取决于实现)。那么,当键是唯一的时,所有bucket的大小是否都是1个元素?我的想法并不是因为冲突,如果是这样,那么一旦bucket编号由散列器确定,并且如果

注意:有时答案是“作为一个用户,你不应该担心实现细节”,我会在这里注意到,这是一个基于我想要学习的内容的问题,就像我想要实现它一样

根据:

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

我明白这一点。没有进一步解释的是,在键唯一和不唯一的情况下,数据是如何存储的(我猜没有解释的原因是它取决于实现)。那么,当键是唯一的时,所有bucket的大小是否都是1个元素?我的想法并不是因为冲突,如果是这样,那么一旦bucket编号由
散列器确定,并且如果键是唯一的,那么元素如何存储在bucket中呢

如果键不是唯一的,该怎么办?元素是如何存储并返回到存储桶的

如果其他要点涉及(通常)唯一关联容器和关联容器如何存储它们的元素以及它们之间的差异(如果有),我也希望详细阐述这些要点。

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


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

我是作为一个实现者来问的。我想了解这一点,而不仅仅是忽略实现细节。唯一关联容器规范本身并没有指定bucketing方案,因此只要遵守上面列出的规范细节,您就可以自由地处理冲突(处理钥匙实际上相等而不是扣在一起的情况。)@Samaursa:我想每个桶通常都装着几把不同的钥匙。