QHashから指定した値に一致するキーを取得
解説
[]はQHashから指定したキーに一致する値を取得,または上書きします.
定義は以下の通りです.
T & QHash::operator[] ( const Key & key )
const T QHash::operator[] ( const Key & key ) const
キーの存在しない要素にアクセスした場合,そのキーが自動的にQHashの中に追加されます.これを防ぐためには,下記のように
containsを用いて事前にキーが存在するかどうかを確認しておく必要があります.
if (hash.contain("b") {
hash["b"] = 10;
}
使用例
#include <QTextCodec>
#include <QTextStream>
#include <QHash>
#include <QList>
int main(int argc, char *argv[]) {
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QTextStream out(stdout);
QHash<QString, int> hash;
hash.insert("a", 0); // hash = {<"a", 0>}
hash.insert("b", 0); // hash = {<"a", 0>, <"b", 0>}
hash["a"] = 10;
hash["b"] = 11;
hash["c"] = 12; // insertしていない要素を書き換えようとすると自動的に追加される.
out << "<a" << "," << hash["a"] << ">, ";
out << "<b" << "," << hash["b"] << ">, ";
out << "<c" << "," << hash["c"] << ">, ";
out << "<d" << "," << hash["d"] << ">, \n";// insertしていない要素を書き換えようとすると自動的に追加される.
out << hash.size() << "\n";
return 0;
}
出力
a
<a,10>, <b,11>, <c,12>, <d,0>,
4
最終更新:2011年09月23日 18:10