qt之QHash和QMap的区别

QMap提供了一个从类项为key的键到类项为T的值的映射,通常所存储的数据类型是一个键对应一个值,并且按照key的次序存储数据,这个类也支持一键多值,如:QMultiMap
QHash跟QMap基本上一致,但是它维护的是一张哈希表,表的大小和数据项是自适应的,QHash是以任意的顺序放置它的数据,这个类也支持一键多值,如:QMultiHash

两者之间的区别是:
1.QHash查找速度上显著于QMap;
2.QHash以任意的方式进行存储,而QMap则是以key顺序进行存储;
3.QHash的键类型必须提供operator==()和一个全局的QHash(key)函数,而QMap的键类型key必须提供operator<()函数;

QMap<QString,QString> map;
map.insert("beijing","111");
map.insert("shanghai","021");
map.insert("tianjin","022");
map.insert("chongqing","023");
map.insert("jinan","0531");
map.insert("wuhan","027");
QMap<QString,QString>::const_iterator i;
for(i=map.constBegin();i!=map.constEnd;++i)
{
   qDebug()<<i.key()<<"  "<<i.value();
}

QMap<QString,QString>::iterator mi;
mi=map.find("beijing");
if(mi!=map.end())
    mi.value()="010";
QMap<QString,QString>::const_iterator modi;
qDebug()<<"";
for(modi=map.constBegin();modi=map.constEnd();++modi)
    qDebug()<<modi.key()<<"  "<<modi.value();
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值