Qt入门系列开发教程STL篇QMap红黑树键值对使用方法
Posted 鱼酱2333
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt入门系列开发教程STL篇QMap红黑树键值对使用方法相关的知识,希望对你有一定的参考价值。
来了,老弟,不收藏你就后悔吧 !****点赞👍收藏⭐️留言📝 不迷路~~~
😈「作者主页 」:鱼酱2333
😈「 B站首页 」:鱼酱2333
😈「本文录入专栏」:Qt入门系列开发教程
😈「本文内容」:QMap红黑树键值对象使用方法
0.应用场景
字典场景,Key+Value形式。Key是唯一值。
1.QMap
简介
QMap是Qt的一个模板类,它是基于红黑树算法的一套字典。
QMap<Key,T>是Qt容器类型的一种,它通过(Key, value)存储一对值,并通过Key可以查找与之关联的value的值。
//是否包含key
bool contains(const Key &key) const
//返回与键 key 关联的项目数。
QMap::size_type count(const Key &key) const
//清空
void clear()
//判空
bool empty() const
//返回一对迭代器,它们界定了存储在 key 下的值 [first, second) 的范围。
QPair<QMap::iterator, QMap::iterator> equal_range(const Key &key)
//查找指定的key元素
QMap::iterator find(const Key &key)
//获取头
T &first()
//添加
void insert(const QMap<Key, T> &map)
//key值得列表
QList<Key> keys() const
//删除指定key元素
T take(const Key &key)
//返回值的列表
QList<T> values() const
3.Example
追加头文件
#include <QMap>
QMap添加
QMap<QString, QString> map;
map.insert("3name", "leo");
map.insert("1age", "18");
map.insert("2like", "eat");
map.insert("4sex", "man");
QMap<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;
QMap遍历
QMap<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];
QMap查找
//查
QMap<quint32,QString> mapNames=qMakePair(2,"张2"),qMakePair(1,"张1"),qMakePair(3,"张3"),qMakePair(0,"张0"),;
auto it = mapNames.find(1);
//直接访问 mapNames[1]
QMap删除
void demoMapDel()
QMap<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();
QMap综合例子
struct Person
QString strName;
QString strId;
quint16 uiAge;
;
QMap<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")
//让他500岁
it.uiAge=500;
以上是关于Qt入门系列开发教程STL篇QMap红黑树键值对使用方法的主要内容,如果未能解决你的问题,请参考以下文章