前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >QMap简单用法

QMap简单用法

作者头像
全栈程序员站长
发布2022-09-02 10:00:43
发布2022-09-02 10:00:43
72400
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

QMap提供了一个从类项为key的键到类项为T的直的映射,通常所存储的数据类型是一个键对应一个直,并且按照Key的次序存储数据,这个类也支持一键多值的情况,用类QMultiMap

QHash具有和QMap几乎完全一样的APi,此类维护这一张哈希表,表的大小和数据项是自适应的,QHash是以任意的顺序住址他的数据,,当然了他也是可以支持一键多值的,QMultiHash

两种之间的区别是:

QHash查找速度上显著于QMap

QHash以任意的方式进行存储,而QMap则是以key顺序进行存储.

Qhash 的键类型必须提供operator==()和yige 全局的qHash(key)函数。而QMap的键类型key必须提供operator<()函数.

他们同样也是有两种风格的迭代容器。用来进行遍历的。

代码语言:javascript
代码运行次数:0
运行
复制
///QMap<Key,T(value)> and QHash<K,T>#include <QtCore/QCoreApplication>#include <qmap.h>#include <qdebug.h>int main(int argc, char *argv[]){	QCoreApplication a(argc, argv);	QMap<QString,int> map;	map.insert("eins o",1);	map.insert("sieben",7);	map["a test"]=23;	//Normally, a QMap allows only one value per key. 	//If you call insert() with a key that already exists in the QMap, 	//the previous value will be erased	map["a test"]=13;	int val=map.value("a test");	qDebug()<<val;	int val2=map.value("error");	qDebug()<<val2;    ///0	int val3=map.value("error2",20);	qDebug()<<val3;	int val4=map.value("a test",40);	qDebug()<<val4;	using a java-style iterator	QMapIterator<QString,int> iter(map);	while(iter.hasNext())	{		iter.next();  ///放在前面		qDebug()<<iter.key()<<" "<<iter.value();	}	using an Stl-style iterator 	QMap<QString,int>::ConstIterator i=map.constBegin();	while(i!=map.constEnd())	{		qDebug()<<i.key()<<": "<<i.value();		++i;	}	QMap<QString,int>::Iterator it;	it=map.find("sieben");	if(it!=map.end())		it.value()=8;	for(QMap<QString,int>::ConstIterator ite=map.constBegin(); ite!=map.constEnd(); ++ite)		qDebug()<<ite.key()<<": "<<ite.value();	return 0;//a.exec();}

结果:

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 请按任意键继续. . .

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139038.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月3,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档