返回顶部

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<()操作;

    

 

posted @ 2021-03-05 10:09  Zoya23  阅读(626)  评论(0)    收藏  举报