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. 8.Deep Interest Evolution Network for Click-Through Rate Prediction论文详解
  2. 世界顶级摄影作品,构图的最高境界!
  3. python 搭建登陆系统_Django 搭建CMDB系统完整[1](用户登录)
  4. Redis key 相关命令
  5. Python 技术篇-用win32库实现读取、添加、修改注册表的值实例演示
  6. R语言:rep函数解析
  7. vsftp mysql_vsftp mysql安装配置
  8. Win7 NFS 设置详解 | X-Space
  9. erlang(20)-控制抽象与判断素数
  10. 不学好css模型的怎么入山门?师傅与徒弟的真实独白
  11. Memcached 学习---(5)set 命令
  12. 从 2,000 到 25,000 工程师,微软开源如何制霸 GitHub?
  13. #论char数组结尾’\0’的必要性#
  14. 集合框架之ArrayList集合
  15. linux源码安装 rpm命令
  16. 运动控制卡中伺服电机的规划位置与编码器位置的区别
  17. html 360浏览器表单自动填写,360 浏览器自动填表: 让重复填表见鬼去
  18. 西威变频器使用说明书_西威变频器说明书 (1)
  19. (五)2005年我的第一次软件行业创业,烧掉30万、2年时间打水漂的惨痛教训
  20. 数据库可靠性/可用性、稳定性RTO/RPO

热门文章

  1. [侠客风云传]游戏攻略
  2. findBugs学习小结
  3. MFC开发xml编辑器小结
  4. 得州大停电后续来了!得州最大电力公司欠债18亿美元已申请破产
  5. 南京中型及以上IT企业名录
  6. 针对客户的无限期修改需求-应对方法
  7. Linux网络 DNS域名解析服务
  8. OGC城市地理标记语言(CityGML)编码标准_序言+0引言
  9. pure pursuit纯跟踪
  10. Linux + 香橙派 + V4L2 + http 实现远程监控摄像头在网页端显示