multi map和unordered_map之间的区别

时间:2014-03-15 19:49:37

标签: c++ data-structures map hashmap multimap

我正在阅读有关c ++ multimap的内容,并指出multimap允许插入重复的密钥。这使我认为multimap使用hashmap进行实施(因为一个hashmap允许重复碰撞)然后我还读到unordered map使用hash map。我的问题是两者之间的区别。我试着寻找两者之间的比较,但我找不到任何可以解释这一点的东西。

1 个答案:

答案 0 :(得分:4)

哈希表允许并解决哈希值的冲突。它只存储每个键值的一个副本(由operator==或其他相等关系确定)。但是如果两个不同的键散列到相同的值(绑定发生),则 通过冲突解决来处理。对于每个键,只有一个值。

multimap是一种ADT,它将多个值与每个键而不是一个键相关联。它不是一个特定的实现策略:它可以在内部使用哈希表,搜索树或完全不同的东西。