Qt入门系列开发教程STL篇QHash哈希表使用方法
Posted 鱼酱2333
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt入门系列开发教程STL篇QHash哈希表使用方法相关的知识,希望对你有一定的参考价值。
来了,老弟,不收藏你就后悔吧 !****点赞👍收藏⭐️留言📝 不迷路~~~
😈「作者主页 」:鱼酱2333
😈「 B站首页 」:鱼酱2333
😈「本文录入专栏」:Qt入门系列开发教程
😈「本文内容」:QHash哈希表对象使用方法
0.应用场景
字典场景,Key+Value形式。Key是唯一值。
1.QHash
简介
QHash<Key, T> 是 Qt 的通用容器类之一。 它存储(键,值)对并提供与键关联的值的非常快速的>查找。联的value的值。
//是否包含key
bool contains(const Key &key) const
//返回与键 key 关联的项目数。
QHash::size_type count(const Key &key) const
//清空
void clear()
//判空
bool empty() const
//返回一对迭代器,它们界定了存储在 key 下的值 [first, second) 的范围。
QPair<QHash::iterator, QHash::iterator> equal_range(const Key &key)
//查找指定的key元素
QHash::iterator find(const Key &key)
//获取头
T &first()
//添加
void insert(const QHash<Key, T> &map)
//key值得列表
QList<Key> keys() const
//删除指定key元素
T take(const Key &key)
//返回值的列表
QList<T> values() const
3.Example
追加头文件
#include <QHash>
QHash添加
QHash<QString, QString> map;
map.insert("3name", "leo");
map.insert("1age", "18");
map.insert("2like", "eat");
map.insert("4sex", "man");
QHash<quint32,QString> mapNames;
mapNames.insert(1,"张三");
qDebug()<<mapNames;
mapNames.insert(1,"张三");
qDebug()<<mapNames;
mapNames.insert(2,"张四");
mapNames.insert(3,"张五");
mapNames.insert(4,"张六");
mapNames[5] = "张七";
qDebug()<<mapNames;
QHash遍历
QHash<quint32,QString> mapNames=qMakePair(2,"张2"),qMakePair(1,"张1"),qMakePair(3,"张3"),qMakePair(0,"张0"),;
for(auto it:mapNames)
qDebug()<<it;
for(auto it =mapNames.begin();it!=mapNames.end();it++)
qDebug()<<*it;
for(int i = 0;i<mapNames.size();i++)
//XXXXX
qDebug()<<mapNames[i];
QHash查找
//查
QHash<quint32,QString> mapNames=qMakePair(2,"张2"),qMakePair(1,"张1"),qMakePair(3,"张3"),qMakePair(0,"张0"),;
auto it = mapNames.find(1);
//直接访问 mapNames[1]
QHash删除
void demoMapDel()
QHash<quint32,QString> mapNames=qMakePair(2,"张2"),qMakePair(1,"张1"),qMakePair(3,"张3"),qMakePair(0,"张0"),;
qDebug()<<mapNames;
auto it = mapNames.begin();
mapNames.erase(it);
qDebug()<<mapNames;
//删
mapNames.clear();
QHash综合例子
struct Person
QString strName;
QString strId;
quint16 uiAge;
;
QHash<QString, Person> m; //自定义一个map类型,值为EmployeeMap对象
m["john"] = Person"john", "111", 12; //向map里插入键-值
m["lilei"] = Person"lilei", "222", 13;
m["tom"] = Person"tom", "Jones", 14;
//批量打印
for(auto &it:m)
if(it.strName =="tom")
it.uiAge=500;
以上是关于Qt入门系列开发教程STL篇QHash哈希表使用方法的主要内容,如果未能解决你的问题,请参考以下文章