2014-11-23 26 views
2

我想用QMultiMap(來自QMap)來存儲鍵/值對。由於我可以多次使用鑰匙,我寧願使用QMultiMapQMap和QMultiMap中物品的順序

假設我將插入下面對在給定的順序:

"C" -> 5 
"A" -> 10 
"B" -> 77 
"B" -> 1 
"X" -> 314159 

當在地圖上進行迭代(用java風格的迭代優選)我需要等於 - 密鑰對的順序被保留。即迭代時,"B" -> 77"B" -> 1應該完全按插入順序顯示。不同的鍵之間的順序無關緊要。

不幸的是,文檔沒有提供關於該細節的信息。它說

隨着QMAP,​​項目總是被重點

排序,但如果/如何排序同鍵不說。

QMap是否保留了具有相同鍵的對的插入順序,還是可以以某種方式保留它們?

回答

3

從Qt文檔約QMap::iterator

不像QHash,存儲任意順序的項目,QMAP 存儲其項目的鍵進行排序。共享相同密鑰 的項目(因爲它們是使用QMap :: insertMulti()插入的,或者是由於 unite())將從最近插入的值到最近插入的值連續出現。

因此,看起來QMap保持相同的鍵對反向插入順序。

+0

這就是我正在尋找的。謝謝。這意味着我的問題的解決方案應該是以相反的順序遍歷地圖。 – Silicomancer 2014-11-23 13:01:41