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的位置
查找元素
存入元素
键值列表
删除指定key元素
值的列表
QMap
contains
count
clear
equal_range
empty
find
insert
keys
take
values
//是否包含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红黑树键值对使用方法的主要内容,如果未能解决你的问题,请参考以下文章

Qt6STL-QMap分析

Qt6STL-STL分析

Qt入门系列开发教程STL篇QMultiHash多值散列表

Qt入门系列开发教程STL篇QQueue 队列使用方法

Qt入门系列开发教程STL篇QStack栈使用方法

Qt入门系列开发教程STL篇QHash哈希表使用方法