QT自学过程记录(7-1):QT5容器类 - QList类、QLinkedList类和QVector类

1 目录及资源索引

  QT自学过程目录及资源索引

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. 目前只知道是一个容器类,怎么使用还不太清楚;
  2. 两种风格的遍历容器,目前只是大概了解,具体可以参考如下网址:
    网址1:Qt 学习之路 2(39):遍历容器
    网址2:与上述连接内容相同
  3. 后续需要加强实践练习,不能纸上谈兵,一定要多练才可以。
发布了88 篇原创文章 · 获赞 84 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/Fighting_Boom/article/details/103516531