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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python中dtype的使用规范_Python numpy.dtype() 使用实例

    python中dtype的使用规范_Python numpy.dtype() 使用实例Thefollowingarecodeexamplesforshowinghowtouse.TheyareextractedfromopensourcePythonprojects.Youcanvoteuptheexamplesyoulikeorvotedowntheexmaplesyoudon’tlike.Youcanal…

    2022年6月6日
    80
  • 产品口碑的最重要指标:净推荐值

    产品口碑的最重要指标:净推荐值(梵高)产品和用户需求真正匹配了,才能达成良好的自增长和高留存。很多人对于如何衡量产品是否是好产品方面比较感性,有没有一个比较理性的指标来衡量产品的用户忠诚度?产品净推…

    2022年5月22日
    33
  • Redis雪崩_redis落地方式

    Redis雪崩_redis落地方式同一时间大面积失效,那一瞬间Redis跟没有一样,那这个数量级别的请求直接打到数据库几乎是灾难性的,如果打挂的是一个用户服务的库,那其他依赖他的库所有的接口几乎都会报错,如果没做熔断等策略基本上就是瞬间挂一片的节奏,怎么重启用户都会把你打挂,等你能重启的时候,用户早就睡觉去了,并且对产品失去了信心,什么垃圾产品。设置两个缓存,原始缓存和备用缓存,原始缓存失效时,访问备用缓存,备用缓存失效时间设置长点。设置缓存过期时间时加上一个随机值,避免缓存在同一时间过期。雪崩概念在某一个时间段,缓存集中过期失效。…

    2022年9月14日
    0
  • python3画图中文乱码_pycharm 画图中文乱码

    python3画图中文乱码_pycharm 画图中文乱码importmatplo pyplotasplti 出现中文乱码原因 matplotlib 中找不到中文字体解决方法 1 找到中文字体文件的地址和字体文件名通常 C Windows Fonts 字体文件名 2 加载字体 zh font matplotlib font manager FontProperti fname C Windows Fon

    2025年7月8日
    1
  • Java实现 蓝桥杯 算法提高 三进制数位和

    Java实现 蓝桥杯 算法提高 三进制数位和算法提高三进制数位和时间限制:1.0s内存限制:256.0MB提交此题问题描述  给定L和R,你需要对于每一个6位三进制数(允许前导零),计算其每一个数位上的数字和,设其在十进制下为S。一个三进制数被判断为合法,当且仅当S为质数,或者S属于区间[L,R]。你的任务是给出合法三进制数的个数。输入格式  一行两个非负整数L,R。输出格式  一行一个非负整数表示答案。样例输…

    2022年6月16日
    26
  • 海尔楼宇可视对讲

    海尔楼宇可视对讲海尔楼宇可视对讲我公司是青岛海尔集团内的智能化产品生产企业。生产楼宇可视对讲等智能化设备,以海尔的品质为您的楼盘提升价值。 室内分机分类序号类型图片显示屏安装方式主要功能1黑白可视对讲分机HR-Q100AV 4寸黑白CRT壁挂式安装★免提通

    2022年6月22日
    28

发表回复

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

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