Qt QMap简单用法
Qt 简单 用法
2023-09-14 09:05:12 时间
QMap提供了一个从类项为key的键到类项为T的直的映射,通常所存储的数据类型是一个键对应一个直,并且按照Key的次序存储数据,这个类也支持一键多值的情况,用类QMultiMap
QHash具有和QMap几乎完全一样的APi,此类维护这一张哈希表,表的大小和数据项是自适应的,QHash是以任意的顺序住址他的数据,,当然了他也是可以支持一键多值的,QMultiHash
两种之间的区别是:
QHash查找速度上显著于QMap
QHash以任意的方式进行存储,而QMap则是以key顺序进行存储.
Qhash 的键类型必须提供operator==()和yige 全局的qHash(key)函数。而QMap的键类型key必须提供operator<()函数.
他们同样也是有两种风格的迭代容器。用来进行遍历的。
1 ///QMap<Key,T(value)> and QHash<K,T>
2
3 #include <QtCore/QCoreApplication>
4 #include <qmap.h>
5 #include <qdebug.h>
6
7 int main(int argc, char *argv[])
8 {
9 QCoreApplication a(argc, argv);
10
11 QMap<QString,int> map;
12 map.insert("eins o",1);
13 map.insert("sieben",7);
14 map["a test"]=23;
15 //Normally, a QMap allows only one value per key.
16 //If you call insert() with a key that already exists in the QMap,
17 //the previous value will be erased
18 map["a test"]=13;
19
20 int val=map.value("a test");
21 qDebug()<<val;
22
23 int val2=map.value("error");
24 qDebug()<<val2; ///0
25
26 int val3=map.value("error2",20);
27 qDebug()<<val3;
28
29 int val4=map.value("a test",40);
30 qDebug()<<val4;
31 using a java-style iterator
32 QMapIterator<QString,int> iter(map);
33 while(iter.hasNext())
34 {
35 iter.next(); ///放在前面
36 qDebug()<<iter.key()<<" "<<iter.value();
37 }
38 using an Stl-style iterator
39 QMap<QString,int>::ConstIterator i=map.constBegin();
40 while(i!=map.constEnd())
41 {
42 qDebug()<<i.key()<<": "<<i.value();
43 ++i;
44 }
45
46 QMap<QString,int>::Iterator it;
47 it=map.find("sieben");
48 if(it!=map.end())
49 it.value()=8;
50
51 for(QMap<QString,int>::ConstIterator ite=map.constBegin(); ite!=map.constEnd(); ++ite)
52 qDebug()<<ite.key()<<": "<<ite.value();
53
54 return 0;//a.exec();
55 }
结果:
13
0
20
13
"a test" 13
"eins o" 1
"sieben" 7
"a test" : 13
"eins o" : 1
"sieben" : 7
"a test" : 13
"eins o" : 1
"sieben" : 8
请按任意键继续. . .
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓
相关文章
- Qt音视频开发01-共享解码线程(耗时一年/性能凶残/至臻完美)
- Qt音视频开发07-合并音视频文件
- Qt编写自定义控件66-光晕时钟
- Qt编写物联网管理平台46-云端数据同步
- Qt开源作品33-图片开关控件
- Qt编写数据库通用翻页demo(开源)
- Qt中如何执行HTTP请求
- Qt编制一个多线程程序
- Qt文本流和数据流、缓冲操作和数据操作
- Qt中JSON简介
- 简单Qt文本查找功能
- jrtplib接收rtcp_qt tcpsocket 接收数据
- QT学习之视图框架下的简单的碰撞检测
- Qt 实现简单的TCP通信
- QT实现一个简单的MP3播放器(有资源例子)
- Qt自定义一个简单的ToolTip提示框
- QT【简单自定义弹出提示框】:非模态,数秒后自动消失
- Qt实现数字滚动动画效果
- qt交叉编译报错::-1: error: The Qt version is invalid: Qt version is not properly installed,please run make
- QT TextEdit设置背景、明文加密、弹出网站、弹出自定义对话框、gif动态图片、程序启动动画、打包程序、关闭事件
- Qt——实现一个获取本机网络信息的界面
- Qt——实现一个简单的获取文件信息的dialog
- Qt数据库应用3-数据打印到pdf