Qhash 怎么用左值查右值
时间: 2023-09-19 21:10:18 浏览: 57
在使用 QHash 时,可以使用 `key()` 方法来查找对应的值。这个方法接受一个键作为参数,并返回与该键关联的值。以下是一个示例:
```cpp
QHash<QString, int> hash;
hash.insert("apple", 2);
hash.insert("banana", 3);
QString key = "apple";
int value = hash.value(key); // 右值查左值
qDebug() << "The value of " << key << " is " << value;
```
如果要反过来,即通过值查找键,可以使用 `key()` 方法重载。这个方法接受一个值作为参数,并返回与该值关联的键。以下是一个示例:
```cpp
QHash<QString, int> hash;
hash.insert("apple", 2);
hash.insert("banana", 3);
int value = 2;
QString key = hash.key(value); // 左值查右值
qDebug() << "The key of " << value << " is " << key;
```
需要注意的是,如果在 QHash 中存在多个值与指定的键或指定的值相等,则返回其中任意一个。如果不存在对应的键或值,则返回一个默认值,通常是空值。
相关问题
Qt Qhash 怎么用左值查右值
在Qt的QHash中,如果要通过左值查找右值,可以使用QHash的value()函数。该函数接受一个左值作为参数,并返回该键对应的值(右值)。
例如,如果我们有一个QHash<QString, int>的哈希表,并且想要通过键值"foo"来查找其对应的值(右值),可以使用以下代码:
```
QHash<QString, int> hash;
hash.insert("foo", 42);
int value = hash.value("foo");
```
在上述代码中,我们首先创建了一个QHash对象,并将键值"foo"和其对应的值42插入到哈希表中。然后,我们使用value()函数通过键值"foo"来查找其对应的值(右值),并将其赋值给变量value。
QHash如何用iterator遍历
可以使用QHash的iterator来遍历QHash。以下是一个简单的示例代码:
```
QHash<QString, int> myHash;
myHash.insert("apple", 2);
myHash.insert("banana", 3);
myHash.insert("orange", 4);
QHash<QString, int>::iterator i;
for (i = myHash.begin(); i != myHash.end(); ++i) {
qDebug() << i.key() << ": " << i.value();
}
```
在上面的示例中,我们使用了QHash的begin()和end()函数获取了QHash的起始和结束迭代器。然后,我们使用一个for循环来遍历每个迭代器,并使用i.key()和i.value()函数分别获取迭代器的键和值。