镇魂歌~Qt5容器类_2
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相关推荐
- 镇魂歌~Qt5容器类_1
基于模板的容器类,更轻量,安全且容易使用,速度消耗和内联方面进行了优化 存储在Qt容器中的数据必须是可赋值的数据类型 Qt的QObject及其他的子类(QWidget,Qdialog)是不能够存储在容 ...
- 镇魂歌~Qt5字符串
操作字符串 一个字符串的末尾追加另一个字符串,4种方式连接字符串 其他的组合字符串的方法 qDebug()<<ba:使用qDebug函数输出转换后的字符串 ba.append(" ...
- 镇魂歌~Qt5算法及正则表达式
QtAlgorithms.QtGlobal模块的常用算法+正则表达式 double a = -19.3,b = 9.7; double c = qAbs(a); double max = qMax(b ...
- 管道实现进程间通讯 、WaitNamedPipe
一.管道实现进程间通讯 主要的理论知识 1.什么是管道以及分类 管道是两个头的东西,每一个头各连接一个进程或者同一个进程的不同代码,依照管道的类别分有两种管道,匿名的和命名的:依照管道的传输方向分也能 ...
- 雅典娜暴利烹饪系列(上)
刨冰事件 田中大人曾经问过:和平是无聊的的代名词吗?答:不是. 今天的圣域在纱织的领导下,依然过着比战时更加热闹的日子. 早晨出门时,修罗觉得自己是这个世界上最为幸福的人.为了庆祝他拿到特级厨师证书, ...
- 唱响艾泽拉斯_职业篇
·光芒(圣骑士的光芒)<联盟的勇士>主题曲 作曲:Tyvek 填词:孤独小狼 演唱:80年代-小同 后期:草莓 黎明第一道阳光 穿透黑暗映过我的脸庞 胸口是染血徽章 心中是我无法承受的伤 ...
- 吴刚谈数位红创业故事-4万起步七年历程回顾
本月 1 月 18 日 是数位红的七周年纪念,至 2007 年 1 月 18 日 ,数位红成立已经七个年头,现将数位红历史大事记写出来以做纪念,同时,也希望能让更多的创业者看到一个由4万人民币起家的小 ...
- 论坛数据库设计与性能优化
题目: 一个简单的论坛系统 1:包含下列信息: 2:每天论坛访问量300万左右,更新帖子10万左右. 请给出数据库表结构设计,并结合范式简要说明设计思路. 结合这个题目把论坛系统设计相关知识点进行 ...
- N70/N72常见问题汇总
引自:http://bbs.imobile.com.cn/viewthread.php?tid=1092547 这里是一些常见的问题,求助前请看里面有没有你需要的答案,或者善用论坛的搜索功能 已更新至 ...
最新文章
- CPU缓存一致性动态图
- cclink 和发那科机器人_发那科 iB系列 | 机器人地装行走轴三大升级介绍
- 如何准备电赛?19年电赛经验总结!
- 嵌入式软件工程师笔试题
- mysql的这几个坑你踩过没?真是防不胜防
- springMVC get 提交乱码
- DDM:剪贴板处理处罚及截取屏幕
- DXGI_FORMAT enumeration (dxgiformat.h)
- Infor SyteLine ERP 报告设置
- 5G网络优化工程师是做什么的?4大工作职责!
- 积木创意:APP开发需要注意哪些事项?
- 混沌者 pat basic 练习七十一 小赌怡情
- linux安装Node.js 详细安装教程
- 英语测试软件怎么没反应呢,有没有可以练习中考英语口语的软件【2017年最新版】...
- LSA(Latent semantic analysis)
- 国内专利申请相关概念综述
- 计算机服务怎么打开flash,开启Flash Helper Service服务后自动关闭要怎么解决?
- DM10分区最完美的图文详解
- [开启C语言秃头之旅]扫雷游戏
- 合肥八中2021年高考成绩查询,合肥八中2018高考喜报