(二十六)Qt容器之顺序容器
来源:互联网 发布:艾弗森体测数据弹跳 编辑:程序博客网 时间:2024/05/21 21:41
顺序容器(容器中的数据线性存储)有: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)后再使用成员函数
void
append ( const T & value )
向QVector<T>末尾添加元素
QVector类也重载了数组访问操作符与输出运算符:
T &
operator[] ( int i )
const T &
operator[] ( int i ) const
QVector<T> &
operator<< ( const T & value )
QVector<T> &
operator<< ( const QVector<T> & other )
这使访问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)语义的列表
- (二十六)Qt容器之顺序容器
- QT容器类之顺序存储容器
- (二十七)Qt容器之关联容器
- 顺序容器学习之二
- 【C++】STL常用容器总结之二:顺序容器
- STL容器之顺序容器
- 浅谈顺序容器(二)
- C++顺序容器二
- QT容器类(二) 之 Iterator
- QT容器类(二) 之 Iterator
- PyGobject(二十六)布局容器之Popover
- Qt学习之路(35): Qt容器类之顺序存储容器
- Qt学习之路(35): Qt容器类之顺序存储容器
- Qt学习之路(35): Qt容器类之顺序存储容器
- Qt学习之路(35): Qt容器类之顺序存储容器
- STL之顺序容器
- MyC++之顺序容器
- 顺序容器之vector
- [LeetCode] 75. Sort Colors
- 第六十八篇:从ADAS到自动驾驶(一):自动驾驶发展及分级
- 应用程序无法正常启动0xc000007b解决方法
- hibernate中session的线程安全问题
- 图片转视频软件
- (二十六)Qt容器之顺序容器
- poj_3294 Life Forms(后缀数组+二分)
- jQuery源码学习---简单dom封装(一)
- leecode 解题总结:93. Restore IP Addresses
- 在国内使用maven下载jar包非常慢的解决方法
- 线程安全和线程不安全
- HDOJ(HDU).2266 How Many Equations Can You Find (DFS)
- IO流_复制指定目录下指定后缀名的文件并修改名称案例
- 将string类型的对象重新作为“输入”使用