2013-10-24 42 views
2

我在C++中使用QHash來存儲一些簡單的鍵和值對。在我的情況下,鍵是一個整數,值也是。要將新的鍵/值對添加到散列,這是我的語法:如何更新特定密鑰的QHash值?

QHash<int, int> myhash; 
int key = 5; 
int value = 87; 

myhash.insert(key,value); 

qDebug() << "key 5 value = " << myhash.value(5); // outputs 87 

如何更新現有的鍵值標準值?什麼是語法?

回答

7

Ť& QHash ::操作符[](常量密鑰&鍵) 返回與鍵作爲一個可修改的引用相關聯的值。

你可以做到以下幾點:

myhash[5] = 88; 
+0

謝謝..我在文檔中看到過,但我不明白這是什麼意思,沒有一個簡單的例子。我希望Qt文檔有更多的例子。非常感激! – panofish

+0

@panofish,術語「可修改參考」可能暗示您可以更改該值。 – vahancho

+0

我猜想,但我的問題是解釋T&QHash :: operator [](const Key&key)AS myhash [5] = 88; ......當然事後看來,似乎很容易:) – panofish

2

從文檔:如果你調用insert()與已經存在於QHash的關鍵,以前的值被刪除。例如:

hash.insert("plenty", 100); 
hash.insert("plenty", 2000); 
// hash.value("plenty") == 2000 

運算符[]在這種情況下也適用。但在其他一些情況下請注意。從文檔: 通常,我們建議您使用contains()和value()而不是運算符來查找散列中的鍵。原因在於,如果沒有項目存在相同的密鑰(除非散列是常量),運算符會靜默插入項目到散列中。