QMap类和QHash类

QHash类更快的查找速度,以任意顺序存储数据项,而QMap总是按照键Key顺序存储数据;键的类型Key必须提供

operator==()函数

一个全局的qHash(Key)函数

QMap类必须提供

operator<()函数

QMap<Key,T>提供一个从类型为Key的键到类型为T的值的映射

一键多值的情况QMap<Key,T>::insertMulti()和QMaori<Key,T>容器,他继承自QMap

QHash<Key,T>维护着一张哈希表

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    QMap<QString,QString> map;//创建了一个空的列表
    map.insert("beijing","111");
    map.insert("Shanghai","021");
    map.insert("nanjing","025");
    QMapIterator<QString,QString> i(map);
    for(;i.hasNext();)
        qDebug()<<" "<<i.key()<<" "<<i.next().value();
    QMutableMapIterator<QString,QString> mi(map);
    if(mi.findNext("111"))
        mi.setValue("010");
    QMapIterator<QString,QString> modi(map);
    qDebug()<<" ";
    for(;modi.hasNext();)
        qDebug()<<" "<<modi.key()<<" "<<modi.next().value();
    return a.exec();
}

对于每一个容器类,Qt都提供了两种类型的STL风格迭代器

读写和只读访问

QVariant类

类似于联合(union)数据类型,能够存放Qt的容器类型的值,也能够保存很多Qt类型的值

QColor,QBrush,QFont,QPen,QRect,QString,QSize

 QVariant v(709);
    qDebug()<<v.toInt();
    QMap<QString,QVariant>map;
    map["int"] = 709;
    map["double"] = 709.709;
    map["string"] = "How are you!";
    map["color"] = QColor(255,0,0);
    qDebug()<<map["int"]<<map["int"].toInt();
    qDebug()<<map["double"]<<map["double"].toDouble();
    qDebug()<<map["String"]<<map["String"].toString();
    qDebug()<<map["color"]<<map["color"].value<QColor>();
    QStringList sl;
    sl<<"A"<<"B"<<"C"<<"D";
    QVariant slv(sl);
    if(slv.type()==QVariant::StringList)
    {
        QStringList list = slv.toStringList();
        for(int i=0;i<list.size();++i)
            qDebug()<<list.at(i);
    }

镇魂歌~Qt5容器类_2相关推荐

  1. 镇魂歌~Qt5容器类_1

    基于模板的容器类,更轻量,安全且容易使用,速度消耗和内联方面进行了优化 存储在Qt容器中的数据必须是可赋值的数据类型 Qt的QObject及其他的子类(QWidget,Qdialog)是不能够存储在容 ...

  2. 镇魂歌~Qt5字符串

    操作字符串 一个字符串的末尾追加另一个字符串,4种方式连接字符串 其他的组合字符串的方法 qDebug()<<ba:使用qDebug函数输出转换后的字符串 ba.append(" ...

  3. 镇魂歌~Qt5算法及正则表达式

    QtAlgorithms.QtGlobal模块的常用算法+正则表达式 double a = -19.3,b = 9.7; double c = qAbs(a); double max = qMax(b ...

  4. 管道实现进程间通讯 、WaitNamedPipe

    一.管道实现进程间通讯 主要的理论知识 1.什么是管道以及分类 管道是两个头的东西,每一个头各连接一个进程或者同一个进程的不同代码,依照管道的类别分有两种管道,匿名的和命名的:依照管道的传输方向分也能 ...

  5. 雅典娜暴利烹饪系列(上)

    刨冰事件 田中大人曾经问过:和平是无聊的的代名词吗?答:不是. 今天的圣域在纱织的领导下,依然过着比战时更加热闹的日子. 早晨出门时,修罗觉得自己是这个世界上最为幸福的人.为了庆祝他拿到特级厨师证书, ...

  6. 唱响艾泽拉斯_职业篇

    ·光芒(圣骑士的光芒)<联盟的勇士>主题曲 作曲:Tyvek 填词:孤独小狼 演唱:80年代-小同 后期:草莓 黎明第一道阳光 穿透黑暗映过我的脸庞 胸口是染血徽章 心中是我无法承受的伤 ...

  7. 吴刚谈数位红创业故事-4万起步七年历程回顾

    本月 1 月 18 日 是数位红的七周年纪念,至 2007 年 1 月 18 日 ,数位红成立已经七个年头,现将数位红历史大事记写出来以做纪念,同时,也希望能让更多的创业者看到一个由4万人民币起家的小 ...

  8. 论坛数据库设计与性能优化

    题目: 一个简单的论坛系统 1:包含下列信息:  2:每天论坛访问量300万左右,更新帖子10万左右. 请给出数据库表结构设计,并结合范式简要说明设计思路.  结合这个题目把论坛系统设计相关知识点进行 ...

  9. N70/N72常见问题汇总

    引自:http://bbs.imobile.com.cn/viewthread.php?tid=1092547 这里是一些常见的问题,求助前请看里面有没有你需要的答案,或者善用论坛的搜索功能 已更新至 ...

最新文章

  1. CPU缓存一致性动态图
  2. cclink 和发那科机器人_发那科 iB系列 | 机器人地装行走轴三大升级介绍
  3. 如何准备电赛?19年电赛经验总结!
  4. 嵌入式软件工程师笔试题
  5. mysql的这几个坑你踩过没?真是防不胜防
  6. springMVC get 提交乱码
  7. DDM:剪贴板处理处罚及截取屏幕
  8. DXGI_FORMAT enumeration (dxgiformat.h)
  9. Infor SyteLine ERP 报告设置
  10. 5G网络优化工程师是做什么的?4大工作职责!
  11. 积木创意:APP开发需要注意哪些事项?
  12. 混沌者 pat basic 练习七十一 小赌怡情
  13. linux安装Node.js 详细安装教程
  14. 英语测试软件怎么没反应呢,有没有可以练习中考英语口语的软件【2017年最新版】...
  15. LSA(Latent semantic analysis)
  16. 国内专利申请相关概念综述
  17. 计算机服务怎么打开flash,开启Flash Helper Service服务后自动关闭要怎么解决?
  18. DM10分区最完美的图文详解
  19. [开启C语言秃头之旅]扫雷游戏
  20. 合肥八中2021年高考成绩查询,合肥八中2018高考喜报

热门文章

  1. 仁润云丨网络小贷风控数据接口分析(多头借贷,芝麻信用)
  2. 《乡土中国》读书笔记
  3. 终于获得IBM认证数据库管理员
  4. OV7670 STM32驱动 YUYV格式调试总结
  5. 新手提问 请给为大哥指点迷津
  6. MSF for MAC 百度云下载链接
  7. 彻底删除软件,无限期使用试用版软件
  8. 手机PDF阅读器如何设置阅读模式
  9. HBase的微博案例
  10. 栈,队列(纸牌游戏,小猫钓鱼)