QT_QHash类的使用

QHash是Qt提供的模板类,实现基于哈希表的字典数据结构,支持快速插入、查找和删除操作。使用时需指定键值类型,如QHash<QString,int>。可通过[]运算符或insert()函数插入键值对,value()函数或[]运算符获取值,contains()检查键是否存在,迭代器或范围for遍历元素,erase()或remove()删除键值对。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        QHash是Qt提供的一个模板类,它可以实现一个基于哈希表的字典。哈希表是一种非常高效的数据结构,它可以在常数时间内完成插入、查找、删除等操作。¹

        要使用QHash,你需要包含<QHash>头文件,并指定键和值的类型。比如,如果想用QString作为键,int作为值,可以这样定义一个QHash对象:
QHash<QString, int> qhash;

        要往QHash中插入一个键值对,可以使用[]运算符或者insert()函数。比如:
qhash["Alice"] = 20; // 使用[]运算符
qhash.insert("Bob", 25); // 使用insert()函数

        要从QHash中获取一个键对应的值,可以使用value()函数或者[]运算符。比如:
int age1 = qhash.value("Alice"); // 使用value()函数
int age2 = qhash["Bob"]; // 使用[]运算符

        要判断QHash中是否包含某个键,可以使用contains()函数。比如:
bool hasAlice = qhash.contains("Alice"); // 返回true
bool hasCindy = qhash.contains("Cindy"); // 返回false

        要遍历QHash中存储的所有键值对,可以使用迭代器或者范围for循环。比如:
// 使用迭代器
QHash<QString, int>::const_iterator it = qhash.constBegin();
while (it != qhash.constEnd()) {
    qDebug() << it.key() << ":" << it.value();
    ++it;
}

// 使用范围for循环
for (auto it = qhash.begin(); it != qhash.end(); ++it) {
    qDebug() << it.key() << ":" << it.value();
}

        要从QHash中删除某个键值对,你可以使用erase()函数或者remove()函数。比如:
// 使用erase()函数,参数是迭代器
auto it = qhash.find("Alice");
if (it != qhash.end()) {
    qhash.erase(it);
}

// 使用remove()函数,参数是键
qhash.remove("Bob");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值