QHashから指定した値を持つキーを取得
解説
value()はQHashから指定したキーの値を取得します
values()はQHashから指定した値に一致するキーを全て取得します.
uniqueKeys()はQHashから指定した値に一致するキーを全て取得します.ただし,キーが重複している場合は返値のQListから取り除かれます.
定義は以下の通りです.
const T QHash::value ( const Key & key ) const
const T QHash::value ( const Key & key, const T & defaultValue ) const
QList<T> QHash::values ( const Key & key ) const
key(),keys()の引数valueには検索対象のキーを指定します.
key()の引数defaultKeyには,引数keyに一致する要素が見つからなかった場合に返される値を指定します.指定しない場合は型Keyのディフォルトコンストラクタの値が返されます.
keys()で引数を指定しない場合は全てのキーが返されます.
uniqueKeys()はQHashの全てのキーを返します.ただし,キー場重複している場合は,返値のQListから取り除かれます.
使用例
#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.insertMulti ("b", 1); // hash = {<a, 0>, <b, 0>, <b, 1>}
hash.insertMulti ("b", 2); // hash = {<a, 0>, <b, 0>, <b, 1>, <b, 2>}
out << hash.value("a") << "\n"; // 0
out << hash.value("b") << "\n"; // 2
out << hash.value("c") << "\n"; // 0
out << hash.value("c", 10) << "\n"; // 10
out << "===\n";
QList<int> lst = hash.values();
foreach (int value, lst) {
out << value << ",";
}
out << "\n";
return 0;
}
出力
a
default
===
a,b,
a,b,b,b,
a,b,
最終更新:2011年09月24日 03:17