2.2 Qt容器类 -- 2017.12.10

发布于:2017-12-10 10:24

    Qt提供了一组通用的基于模板的容器类,对比C++的标准模板库中的容器类,Qt的这些容器更轻量、更安全并且更容易使用。此外,

    Qt的容器类在速度、内存消耗和内联(inline)代码等方面进行了优化(较少的内联代码将会减少可执行程序的大小)

    存储在Qt容器中的数据必须是可赋值的数据类型,也就是说,这种数据类型必须提供一个默认的构造函数(不需要参数的构造函数)、一个复制构造函数和一个赋值操作运算符。

    这样的数据类型包含了通常使用的大多数数据类型,包括基本数据类型(如 int和double等)和Qt的一些数据类型(如QString、QDate和QTime等),不过,Qt的Object及其他的子类(如QWidget和Qdialog等)是不能够存储在容器中的,例如:QList<QToolBar>list;

    上述代码是无法通过编译的,因为这些类(QObject及其他的子类)没有复制构造函数和赋值操作运算符

  一个可代替的方案是存储QObject及其子类的指针,例如:

  QList<QToolBar*>list;

  Qt的容器类是可以嵌套的,例如:

  QHash<QString,QList<double>>

  其中,QHash的键类型是QString,它的值类型是QList<double>。注意,在最后两个“>”符号之间要保留一个空格,否则,C++编译

器会将两个“>”符号解释为一个“>>”符号,导致无法通过编译器编译。

  Qt的容器类为遍历其中的内容提供了以下两种方法:

  (1)Java风格的迭代器(Java-style iterators)

  (2)STL风格的迭代器(STL-style iterators),能够同Qt和STL的通用算法一起使用,并且在效率上也略胜一筹。

                           71e741c3cd97f441d1167d63ef08db6e003.gif

   - - - - - - - - - -  害你加班的bug,就是我写的! - - - - - - - - - -


共有3条评论
正序查看
倒序查看
8班-安徽-陈红 2017-12-10 10:25
回复

B_17.gif

HuRui 回复 8班-安徽-陈红 2017-12-10 10:29
回复
为什么暗恋那么好。因为暗恋从来不会失恋,你一笑我高兴很多天;你一句话我记得好多年......
HuRui 2017-12-10 10:26
回复

B_49.gif周末美好时光,静静地做个mei男子.............

10班-深圳-丑丑 2017-12-11 21:57
回复

B_105.gif

回复:2.2 Qt容器类 -- 2017.12.10

图片
视频

0

今日新帖

0

昨日新帖

35

帖子总数