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 像