(二十六)Qt容器之顺序容器

顺序容器(容器中的数据线性存储)有:QList(数组列表)、QLinkedList(链表)、QVector(向量)、QStack(栈)、QQueue(队列)

 

QVector(向量):

1、  QVector是一个类似数组的容器,它将数据存储在连续的内存空间中

2、  QVector知道自己的长度,并且可以改变其大小

3、  QVector支持随机访问

4、  在QVector尾部添加元素的效率都非常的高,但在头部或中间位置插入元素或者删除元素可能很耗时

 

如果我们预知QVector对象应该存储多少个元素时,可以直接初始化QVector大小,在不知道的情况下也可以对QVector默认初始化(基本数据类型与指针类型会被初始化为0)后再使用成员函数

void

append ( const T & value )

向QVector末尾添加元素

 

QVector类也重载了数组访问操作符与输出运算符:

T &

operator[] ( int i )

const T &

operator[] ( int i ) const

QVector &

operator<< ( const T & value )

QVector &

operator<< ( const QVectorother )

这使访问QVector中某个位置的元素与向容器中添加元素更加方便快捷

 

QLinkedList(链表):

1、  QLinkedList是QT中的双向链表,向其中插入与删除元素效率都很高(消耗常量时间的插入与删除)

2、  QLinkedList不支持随机访问,必须使用迭代器来访问

3、  QLinkedList重载了operator<<

 

QList(数组列表):

1、  QList是Qt中最常用的容器类,它结合了QVector与QLinkedList的优点,它支持随机访问

2、  QList在QLIst的任意一端插入或者移除元素都是非常快速的。

3、  当QLinkedList中有1000个(包括)以上个元素时,在它中间插入元素也很快

4、  除非我们需要进行在很大的集合的中间位置的添加、删除操作,或者是需要所有元素在内存中必须连续存储,否则我们应该一直使用Qlist

5、 QList重载operator[] 与operator<<


QStack(栈):

QStack是一个提供后进先出(LIFO)语义的向量

 

QQueue(队列):

QQueue是一个提供先进先出(FIFO)语义的列表

 

 

 

你可能感兴趣的:(Qt)