Qhash
来源:互联网 发布:淘宝下单 编辑:程序博客网 时间:2024/05/06 15:53
本文介绍的是Qt QHash 和QMap的区别,关于容器类可以查阅更多的资料,首先我们先把QHash和QMap区分开来。内容如下。
QMap提供了一个从类项为key的键到类项为T的直的映射,通常所存储的数据类型是一个键对应一个直,并且按照Key的次序存储数据,这个类也支持一键多值的情况,用类QMultiMap
QHash具有和QMap几乎完全一样的APi,此类维护这一张哈希表,表的大小和数据项是自适应的,QHash是以任意的顺序住址他的数据,,当然了他也是可以支持一键多值的,QMultiHash
两种之间的区别是:
QHash查找速度上显著于QMap
QHash以任意的方式进行存储,而QMap则是以key顺序进行存储.
Qhash 的键类型必须提供operator==()和yige 全局的qHash(key)函数。而QMap的键类型key必须提供operator<()函数.
他们同样也是有两种风格的迭代容器。用来进行遍历的。
STL 风格的
QMap<key,T> QMap<key,T>::const_iterator QMap<key,T>::iterator//同样中间那个也是只读的,最后那个是读写的。下面以一个例子来进行说明:
- #include <QDebug>
- int main(int argc, char *argv[])
- {
- 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();
- return 0;
- }
小结:关于Qt 中QHash 和QMap的区别,相信你看完之后,应该很了然一新了。如果你需要对内存分配做优化,Qt的容器提供了三大内存分配函数,reserve(size),显示预分配size的内存; capacity(),返回已分配内存;squeeze()释放所有的未占用的内存;当你知道QHash的大小时,可以使用reserve函数预先分配内存。
- Qhash
- QMap与QHash
- QMap与QHash类
- QMap与QHash类
- QHash的使用
- QHash的使用
- QMap QHash的选择
- QMap 和 QHash
- 关于QHash与QMap
- QMap 和 QHash 区别
- Qmap 与 Qhash 对比
- QT QHash 使用方法实例
- QMap和QHash
- Qt QHash 和QMap 区别
- Qt QHash 和QMap 区别
- Qt容器类 QMap QHash
- QHash 和QMap的区别
- QMap类和QHash类
- 健康菜谱下载地址
- c++若干重点整理(2)
- oracle 表空间、数据文件管理
- SQL Server创建存储过程
- 问题集锦
- Qhash
- 平面坐标系下计算3个点的角度
- AS3.0自定义得到swf路径的函数
- linux安装 MySQL
- cocos2d-x 常用学习网站
- CM10.1 HTC one/M7 原滋原味ROM、更多自定义、 稳定、极速流畅、root权限 抢鲜v1版
- live555代码解读之一:RTSP连接的建立过程
- 第13堂课后作业
- Proc*C实例三 -- 数据库代码逻辑代码分离