1 目录及资源索引
2 时间复杂度比较
3 QList类
QList< T >是目前最常用的容器类,它存储给定数据类型T的一系列数值。
QList不仅提供了可以在列表进行追加的 QList::append() 和 QList::prepend() 函数,还提供了在列表中间完成插入操作的函数 QList::insert() 。
QList< T >维护了一个指针数组,该数组存储的指针指向QList< T >存储的列表项的内容。
对于不同的数据类型,QList< T >采取不同的存储策略,有以下几种:
- 如果T是一个指针类型或指针大小的基本类型(即该基本类型占有的字节数和指针类型占有的字节数相同),QList< T >会将数值直接存储在它的数组中。
- 如果QList< T >存储对象的指针,则该指针指向实际存储的对象。
- 测试示例如下:
#include <QDebug>
int main (int argc, char *argv[])
{
QList<QString> list;
{
QString str("This is a test string");
list << str;
}
qDebug() << list[0] << "How are you!";
return 0;
}
实测输出如下:
4 QLinkedList类
QLinkedList< T >是一个链式列表,它以非连续的内存块保存数据。
QLinkedList< T >不能使用下标,只能使用迭代器访问它的数据项。
5 QVector类
QVector< T >在相邻的内存中存储给定数据类型T的一组数值。
QVector< T >既可以使用下标访问数据项,也可以使用迭代器访问数据项。
6 Java风格迭代器遍历容器
对于每一个容器类,Qt都提供了两种类型的Java风格迭代器数据类型,即只读访问和读写访问,具体分类如下图:
7 STL风格迭代器遍历容器
对于每一个容器类,Qt都提供了两种类型的STL风格迭代器数据类型,即只读访问和读写访问,具体分类如下图:
8 总结
- 目前只知道是一个容器类,怎么使用还不太清楚;
- 两种风格的遍历容器,目前只是大概了解,具体可以参考如下网址:
网址1:Qt 学习之路 2(39):遍历容器
网址2:与上述连接内容相同 - 后续需要加强实践练习,不能纸上谈兵,一定要多练才可以。