当前位置: 首页 > news >正文

Qt容器QMap(映射)

插入数据

QMap<QString,QString> infoMap; //第一个是key 第二个是valueinfoMap.insert("王祖蓝","163cm");infoMap.insert("Anglebaby","168cm");infoMap["易烊千玺"] = "173cm(成长中)";infoMap["姚明"] = "226cm";

通过Key找value 

    qDebug()<<"姚明:"<<infoMap["姚明"];qDebug()<<"易烊千玺:"<<infoMap.value("易烊千玺");

通过value找Key 

qDebug()<<"168cm的是谁呢?"<<infoMap.key("168cm")<<endl;

Java风格迭代器

只读

 QMapIterator<QString,QString> it_r(infoMap);for(it_r.toFront();it_r.hasNext();){it_r.next();qDebug()<<it_r.key()<<" : "<<it_r.value();}

注:输出的结果不是按照插入数据输出而是键序进行排序,它是有顺序的(可以理解为按字母顺便排序),哈希表是无序的!

读写 

  QMutableMapIterator<QString,QString> it_rw(infoMap);if(it_rw.findNext("163cm"))it_rw.setValue("163.1cm");qDebug()<<endl<<"修改后的数据遍历:";for(it_rw.toFront();it_rw.hasNext();){it_rw.next();qDebug()<<it_rw.key()<<":"<<it_rw.value();}

STL风格迭代器 

只读

    QMap<QString,QString> wMap;wMap.insert("spring","15℃");wMap.insert("summer","35℃");wMap.insert("autumn","23℃");wMap.insert("winter","-5℃");//STL风格迭代器 ,只读QMap<QString,QString>::const_iterator i_r;i_r = wMap.constBegin();qDebug()<< endl <<"初始化季节遍历:";for(;i_r!=wMap.constEnd();++i_r)qDebug()<<i_r.key()<<" : "<<i_r.value();

注:输出的结果不是按照插入数据输出而是键序进行排序,它是有顺序的(可以理解为按字母顺便排序),哈希表是无序的! 

读写 

    QMap<QString,QString>::iterator i_rw;i_rw = wMap.find("spring");if(i_rw!=wMap.end())i_rw.value() = "16℃";qDebug()<<endl<<"修改春天的数据后遍历:";i_rw = wMap.begin();for(;i_rw!=wMap.end();++i_rw)qDebug()<<*i_rw;

 Key对应多个value

    QMultiMap<QString,QString> wMap1;wMap1.insert("spring","15℃");wMap1.insert("summer","35℃");wMap1.insert("summer","39℃");wMap1.insert("summer","40℃");wMap1.insert("autumn","23℃");wMap1.insert("winter","-5℃");wMap1.insert("winter","-15℃");wMap1.insert("winter","-55℃");qDebug() <<endl <<"初始化wMap: "<<wMap1;wMap1.remove("winter","-55℃");qDebug()<<endl<<"删除winter:-55℃后"<<wMap1;qDebug()<<endl<<"winter:"<<wMap1.values("winter");

Java风格只读迭代器

    QMapIterator<QString,QString> i_r1(wMap1);qDebug()<<endl<<"初始化季节遍历:";for(i_r1.toFront();i_r1.hasNext();)qDebug()<<i_r1.key()<<" : "<<i_r1.next().value();

注:遍历数据拿值要从下一个开始拿!  

        qDebug()<<i_r1.key()<<" : "<<i_r1.next().value();

        一定要添加上next()

http://www.lryc.cn/news/286931.html

相关文章:

  • AI时代的创新工具:如何利用AI生成独具个性的XMind思维导图?
  • 【每日一题】最长交替子数组
  • gin数据解析和绑定
  • TCP服务器最多支持多少客户端连接
  • UML类图学习
  • 死锁面试题详解
  • 【rust/bevy】使用points构造ConvexMesh
  • 【C语言】string.h——主要函数总结
  • 如何在前端优化中减少页面加载时间?
  • Typecho后台无法登录显示503 service unavailable问题及处理
  • Python入门(一)
  • 云表企业级无代码案例-自主开发ERP管理系统
  • Qt —— 编译Qt5版本QFTP库,并实现连接服务、获取列表、上传、下载、删除文件等操作(附源码、附基于Qt5编译好的QFTP库)
  • 碰到es6的...拓展运算符
  • JDK8新特性详解
  • ELK+Filebeat 部署实验
  • 利用wireshark lua扩展能力增加自定义解析器[注释解读版]
  • GPT-5不叫GPT-5?下一代模型会有哪些新功能?
  • 2024.1.23(347.前k个高频元素)
  • MySQL对数据库的操作
  • 解决Unity WebGLInput插件全屏输入的问题
  • Android14实战:调整A2DP音量曲线(五十三)
  • vector讲解
  • nvm 配置淘宝镜像失效,以及安装node后 npm-v 无效
  • 【Android Gradle 插件】Gradle 基础配置 ④ ( Gradle Wrapper 配置作用 | Gradle 下载的依赖库存放位置 )
  • Deepin_Ubuntu_查看树形目录结构(tree)
  • Java Excel分割成许多小文件
  • 【心得】java从CC1链入门CC链个人笔记
  • Django migration 新增外键的坑
  • 相关系数(皮尔逊相关系数和斯皮尔曼相关系数)