(二十六)Qt容器之顺序容器
2017-02-14 00:38
288 查看
顺序容器(容器中的数据线性存储)有:QList(数组列表)、QLinkedList(链表)、QVector(向量)、QStack(栈)、QQueue(队列)
QVector(向量):
1、 QVector<T>是一个类似数组的容器,它将数据存储在连续的内存空间中
2、 QVector<T>知道自己的长度,并且可以改变其大小
3、 QVector<T>支持随机访问
4、 在QVector<T>尾部添加元素的效率都非常的高,但在头部或中间位置插入元素或者删除元素可能很耗时
如果我们预知QVector<T>对象应该存储多少个元素时,可以直接初始化QVector<T>大小,在不知道的情况下也可以对QVector<T>默认初始化(基本数据类型与指针类型会被初始化为0)后再使用成员函数
向QVector<T>末尾添加元素
QVector类也重载了数组访问操作符与输出运算符:
这使访问QVector<T>中某个位置的元素与向容器中添加元素更加方便快捷
QLinkedList(链表):
1、 QLinkedList<T>是QT中的双向链表,向其中插入与删除元素效率都很高(消耗常量时间的插入与删除)
2、 QLinkedList<T>不支持随机访问,必须使用迭代器来访问
3、 QLinkedList<T>重载了operator<<
QList(数组列表):
1、 QList<T>是Qt中最常用的容器类,它结合了QVector<T>与QLinkedList<T>的优点,它支持随机访问
2、 QList<T>在QLIst<T>的任意一端插入或者移除元素都是非常快速的。
3、 当QLinkedList<T>中有1000个(包括)以上个元素时,在它中间插入元素也很快
4、 除非我们需要进行在很大的集合的中间位置的添加、删除操作,或者是需要所有元素在内存中必须连续存储,否则我们应该一直使用Qlist<T>
5、 QList<T>重载operator[] 与operator<<
QStack(栈):
QStack<T>是一个提供后进先出(LIFO)语义的向量
QQueue(队列):
QQueue<T>是一个提供先进先出(FIFO)语义的列表
QVector(向量):
1、 QVector<T>是一个类似数组的容器,它将数据存储在连续的内存空间中
2、 QVector<T>知道自己的长度,并且可以改变其大小
3、 QVector<T>支持随机访问
4、 在QVector<T>尾部添加元素的效率都非常的高,但在头部或中间位置插入元素或者删除元素可能很耗时
如果我们预知QVector<T>对象应该存储多少个元素时,可以直接初始化QVector<T>大小,在不知道的情况下也可以对QVector<T>默认初始化(基本数据类型与指针类型会被初始化为0)后再使用成员函数
void | append ( const T & value ) |
QVector类也重载了数组访问操作符与输出运算符:
T & | operator[] ( int i ) |
const T & | operator[] ( int i ) const |
QVector<T> & | operator<< ( const T & value ) |
QVector<T> & | operator<< ( const QVector<T> & other ) |
QLinkedList(链表):
1、 QLinkedList<T>是QT中的双向链表,向其中插入与删除元素效率都很高(消耗常量时间的插入与删除)
2、 QLinkedList<T>不支持随机访问,必须使用迭代器来访问
3、 QLinkedList<T>重载了operator<<
QList(数组列表):
1、 QList<T>是Qt中最常用的容器类,它结合了QVector<T>与QLinkedList<T>的优点,它支持随机访问
2、 QList<T>在QLIst<T>的任意一端插入或者移除元素都是非常快速的。
3、 当QLinkedList<T>中有1000个(包括)以上个元素时,在它中间插入元素也很快
4、 除非我们需要进行在很大的集合的中间位置的添加、删除操作,或者是需要所有元素在内存中必须连续存储,否则我们应该一直使用Qlist<T>
5、 QList<T>重载operator[] 与operator<<
QStack(栈):
QStack<T>是一个提供后进先出(LIFO)语义的向量
QQueue(队列):
QQueue<T>是一个提供先进先出(FIFO)语义的列表
相关文章推荐
- Qt学习之路(35): Qt容器类之顺序存储容器
- Qt学习之路(35): Qt容器类之顺序存储容器
- Qt学习之路(35): Qt容器类之顺序存储容器
- Qt学习之路(35): Qt容器类之顺序存储容器
- QT容器类之顺序存储容器
- QT容器类之顺序存储容器
- Qt学习之路(35): Qt容器类之顺序存储容器
- Qt学习之路(35): Qt容器类之顺序存储容器
- Qt学习之路(35): Qt容器类之顺序存储容器
- Qt学习之路(36): Qt容器类之遍历器和隐式数据共享
- 细嚼慢咽C++primer(5)——顺序容器
- C++ primer(九)再谈容器之顺序容器
- C++顺序容器笔记
- 熟悉STL顺序容器的使用之vector
- C++(12)STL实践与分析之顺序容器
- 顺序容器(上)
- C++顺序容器学习小结
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Qt 容器类学习
- 顺序容器的笔记