2012-10-27 26 views
0

我想從我的QHash中得到一個隨機數字nQHash - hot得到一個隨機密鑰和值

現在我做這種方式:

QHash<QString,QString>::iterator iterator = dictionary.begin(); 
iterator+= n; 
question->setText(iterator.key()); 

但這似乎太荒謬......必須有一個正常的方式。你能幫我嗎?我已閱讀整個QHash的整個手冊頁

回答

1

QHash不提供隨機選擇。如果您必須經常執行此操作,則將散列表的keys()的(指針)複製到vectorQVector,獲取隨機索引並使用該鍵查找QHash中的值。

根據你使用的QHash的不同,你可能想在某些時候把它轉換成一個對的向量,然後用它來隨機選擇。

+0

我需要在其中存儲2種語言的字典。似乎很高興將它存儲分類,對吧?我需要做2次操作。 1 - 獲得一個隨機對。 2 - 檢查是否有價值密鑰對。你建議使用什麼?也許是'QMap'? – Kolyunya

+0

@Kolyunya:你是否經常插入項目到'QHash'中,還是固定在某個點上? –

+0

它絕對是固定的。它只形成一次。 – Kolyunya