电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

qt核心编程VIP免费

qt核心编程_第1页
1/29
qt核心编程_第2页
2/29
qt核心编程_第3页
3/29
11 Qt 模板库Qt 模板库(QT Template Library 简称 QTL)是一套提供对象容器的模板。如果你的编译器没有适当的STL(标准模板库)可用,QTL 将被代替使用。QTL 提供了对象的链表、对象的矢量 (动态数组)、从一个类型到另一个类型的映射(或称为字典)和相关的迭代器和算法。一个容器是包含和管理其它对象的一个对 象,并且提供迭代器对被包含的对 象进行访问。 Qt 模板类说明如表 2。表 2 Qt 模板类说明模板类名称说明QMap提供基于值的一个字典的模板类QMapConstIteratorQMap 的常量迭代器QMapIteratorQMap 的迭代器QPair提供基于值的一对元素的模板类QValu eList提供基于值的一个双向链表的模板类QValu eListConstIteratorQValu eList 的常量迭代器QValu eListIteratorQValu eList 的迭代器QValu eStack提供基于值的一个堆栈模板类QValu eVector提供基于值的一个动态数组模板类QTL 类的命名约定与其他 Qt 类一致(比如,count()、isEmpty())。它们还提供额外的函数来兼容 STL 算法,比如 size()和 empty()。可以像使用 STL 的函数 map 一样来使用它们。与 STL 相比,QTL 仅仅包含了 STL 容器应用程序接口的最重要的特性,没有平台差异,通常要慢一些并且经常扩展为更少的对象代码。如果你不想拷贝存储对象,你最好使用 QPtrCollection 及派生类。它们就是被设计用来处理各种类指针的。QObject 没有拷贝 构造函数,因此 QObject 不能作为一个值使用。但可以存储指向 QObject 的指针到QValueList。当然,直接使用 QPtrList 更好。 QPtrList 像所有其它的基于 QPtrCollection 的容器一样,提供了比速度优化了、基于值的容器更多健全的检查。如果你有一些使用值的对象,并且在你的目标平台没有可用的 STL,Qt 模板库就可以替代它。使用值的对象至少需要一个拷贝构造函数、一个赋值操作符和一个默认构造函数(如:一个没有任何参数的构造函数)。注意一个快速的拷贝构造函数对于容器的高性能是关键的,因为许多拷贝操作将会发生。如果你想排序你的数据,你必须在你的数据类中实现 operator<()。Qt 模板库是为高性能而设计,迭代器是非常快的。为了实现这样的性能,Qt 模板库比基于 QPtrCollection 的 集合类做更少的错误 检查。一个 QTL 容器,例如:QTL 容器没有跟踪任何相关的迭代器。这样在诸如删除条目时没有执行有效性检查,但它提供了很好的执行性能。11.1 迭代器(I...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

您可能关注的文档

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部