QMap简单用法

QMap简单用法QMap提供了一个从类项为key的键到类项为T的直的映射,通常所存储的数据类型是一个键对应一个直,并且按照Key的次序存储数据,这个类也支持一键多值的情况,用类QMultiMapQHash具有和QMap几乎完全一样的APi,此类维护这一张哈希表,表的大小和数据项是自适应的,QHash是以任意的顺序住址他的数据,,当然了他也是可以支持一键多值的,QMultiHash两种之间的区别是:

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

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

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

两种之间的区别是:

QHash查找速度上显著于QMap

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

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

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

///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.net/139038.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • navicat 1146错误「建议收藏」

    navicat 1146错误「建议收藏」打开新安装的navicat后,有个test_3306的mysql连接,里面有写默认的mysql、information_schema、sys、performance_schema数据库,我以为这是没用的就删除了,之后建立自己的mysql连接后,打开连接报错1146-Table’historyhistoryperformance_schema.session_status’doesn’texist。查阅资料后了解mysql、information_schema、sys、performance_s

    2022年6月7日
    184
  • 批量归一化和层归一化_数据归一化公式

    批量归一化和层归一化_数据归一化公式一、背景意义本篇博文主要讲解2015年深度学习领域非常棒的一篇文献:《BatchNormalization:AcceleratingDeepNetworkTrainingby ReducingInternalCovariateShift》,这个算法目前已经被大量的应用,最新的文献算法很多都会引用这个算法,进行网络训练,可见其强大之处非同一般啊,采用这个方法网络的训练速度快到…

    2022年10月11日
    4
  • angularjs下载地址

    angularjs下载地址

    2021年9月15日
    65
  • 《圣经》心得——孙继滨

    《圣经》心得——孙继滨

    2021年8月11日
    55
  • 移动端app开发,框架的选择。

    移动端app开发,框架的选择。从事java开发快三年了,最近公司因项目要求需要做一款app,个人对这方面兴趣比较大,于是网上收集资料,框架的选择,技术的论证,到今天项目需求的各个功能都做出了相应的demo同时也打好了框架,接下来就是完成细节的部分了。接下来自己会在github更新自己相应的demo,最后也将会更新整个项目,写博客的目的就是希望自己养成做笔记的习惯,同时鞭策自己不断的学习新的知识。框架的选择,因为一直在关注前端方

    2022年6月29日
    33
  • 高德地图api接口调用_高德地图步行导航怎么看方向

    高德地图api接口调用_高德地图步行导航怎么看方向本文介绍了Vue项目中高德地图JSAPI的引入以及相关设置。

    2025年10月1日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号