簡體   English   中英

QMap 但沒有按鍵排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM