QT容器简单介绍
Qt提供了一组基于模板的容器类,可以用来存储指定的项目,相比STL,QT的容器更轻量,更安全。
需要注意的是Qt的容器不能存储QObject及其子类对象,但可以存储其指针
Qt容器
QT提供的容器有:
1. 顺序容器:QList、QLinkedList、QVector、QStack、QQueue。Qt中推荐使用QList,删改速度较快,前置和附件也很快。QStack和QQueue提供了LIFO和FIFO的遍历类。
2. 关联容器:QMap、QMultiMap、QHash、QMultiHash、QSet。多容器支持与单个键相关联的多个值,哈希容器提供更快的查找。
3. QCache和QContiguousCache在优先的缓存存储中提供了对象的高效散列查找。
遍历容器
QT有两种风格的迭代器:java风格的迭代器和stl风格的迭代器。java风格的迭代器更容易使用并提供高级功能,STL风格 的迭代器稍微更高效,可与QT和STL的通用算法一起使用。
STL风格的迭代器

遍历时尽量使用只读迭代器,因为更快!
需要注意的是,当容器改变时,迭代器会与容器失去联系,此时再对迭代器操作得到的结果也许不是预想中的结果。
QMap和QHash
QMap和QHash都用来存储(键,值)对并提供与键关联的值的快速查找。二者差异在于:
QHash比QMap提供平均更快的查找;
QHash不会自动排序,QMap按键排序;
QHash的key类型必须提供operator==()和全局QHash(key)函数。QMap的键类型必须提供operator<()操作;

浙公网安备 33010602011771号