[英]QMap but without sorting by key
我需要像 QMap 這樣的結構,但不按鍵排序,所以如果我先在那里插入項目,我可以計算出這個項目將在所有其他項目之前。 並在指定元素之前或之后插入對。 Qt有這樣的嗎?
QMap
實現為一棵樹,這意味着插入順序並不重要。 看來您正在尋找一個隊列。 但是,如果您需要一個可以按插入順序迭代並同時通過特定鍵訪問的容器,那么 Qt 沒有這樣的結構。
這些可以幫助你:
我用一個
QList<QPair<key,value>>
為達到這個。 但是查找會消耗更多時間,因為您需要遍歷 QList 並使用 QPair.first 來查找您想要的項目。
編輯:如果您不需要它與其他 API 進行大量交互,您可以使用 QVector 替換 QList,根據 Qt 官方的說法更快
QHash適合它嗎?
QHash 提供與 QMap 非常相似的功能。 區別在於:
- QHash 提供比 QMap 更快的查找。 (有關詳細信息,請參閱算法復雜性。)
- 在迭代 QMap 時,項目總是按鍵排序。 使用 QHash,項目是任意排序的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.