我不明白爲什麼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