QHash > left

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;
}

使用例

  1. #include <QTextCodec>
  2. #include <QTextStream>
  3. #include <QHash>
  4. #include <QList>
  5. int main(int argc, char *argv[]) {
  6. QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
  7. QTextStream out(stdout);
  8.  
  9. QHash<QString, int> hash;
  10. hash.insert("a", 0); // hash = {<"a", 0>}
  11. hash.insert("b", 0); // hash = {<"a", 0>, <"b", 0>}
  12. hash["a"] = 10;
  13. hash["b"] = 11;
  14. hash["c"] = 12; // insertしていない要素を書き換えようとすると自動的に追加される.
  15.  
  16. out << "<a" << "," << hash["a"] << ">, ";
  17. out << "<b" << "," << hash["b"] << ">, ";
  18. out << "<c" << "," << hash["c"] << ">, ";
  19. out << "<d" << "," << hash["d"] << ">, \n";// insertしていない要素を書き換えようとすると自動的に追加される.
  20. out << hash.size() << "\n";
  21.  
  22. return 0;
  23. }

出力
a

<a,10>, <b,11>, <c,12>, <d,0>,
4
最終更新:2011年09月23日 18:10
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。