我不明白为什么multimap存在,如果我们可以创建矢量地图或集地图。 对我来说,唯一的区别是:多映射与矢量映射的优点是什么?
- 在多重映射使用
equal_range
为获得一个关键的元素和载体的地图,我们简单地使用[]
运营商和拥有的元素载体。 - 在多图中使用
multimap.insert(make_pair(key,value))
在矢量图中添加元素和map_of_vectors[key].push_back(value)
。
那么为什么要使用multimap?对我来说,最好有一个向量比两个迭代器来获得一个键的所有值。
这个问题也适用于矢量和unordered_multimap的unordered_map。
我必须承认,我从来没有完全理解'multimap'的目的:/ – 2010-12-14 12:13:55
我稍微晚了一点,但由于额外的指针,multimap比矢量地图消耗更多的内存。我使用它们的唯一原因是如果我想保留每个元素的关键(做'push_back',你不会保留它) – Jcao02 2014-08-05 14:08:39
如果你不仅想跟踪不同值的重复键,但您也想要立即删除任何键/值对。矢量地图不适合这种情况,虽然您可以使用列表地图,但使用多地图更为方便。 – richizy 2016-07-11 17:27:58