Qt中的容器类
来源:互联网 发布:2017笔记本电脑知乎 编辑:程序博客网 时间:2024/05/17 04:02
QList<T>是最常用的容器类,他存储给定类型的数据类型T的一列直,,可以在列表中追加QList::append();and QList::preppend();and QList::insert()..
他所维护的是一个一指针数组,该数组存储的指针指向存储列表项的直,因此可以采用下标进行快速访问。
QList<QString> list;
string str="i am turing ,welcome to Qt.";
list<<str;
qDebug()<<list(0);
其中的QStringList 就是从这边继承下来的
QLinkedList<T>是一个链式列表,它以非连续的内存快保存数据,所以他是不能使用下标进行访问的,,也就是说他更适合插入的操作,时间是在O(1).
QVector<T>这个方式是在相邻的内存位置上保存数据的,也就是以数组的方式进行存储的,所以对起进行插入的操作的时候是一项很耗时间的,因为要有大量的数据进行一动。。当然也是可以通过下标对其进行访问的。
Qt的容器类为遍历其中的操作提供了两种方法:
1.java风格的迭代器,
2。STL风格的。
下面介绍STL风格
QList<T> QList<T>::const_iterator QList<T>::iterator///中间那个是只读的,最后是可读写的
QLinkedList<T> QLinkedList<T>::const_iterator QLinkedList<T>::iterator
下面那个同理
这个风格的迭代器是建立在指针的基础上的,++指向下一个,*返回指向的项。
下面再以QList来简单介绍他们的迭代器具体的API接口
QList<T>::begin()///返回指向第一个列表项的迭代器,这个是有效的
QList<T>::end()//返回的是容器最后列表项之后的下一个,也就是标记的是无效的那个,
#include <QDebug>
int main(int argc, char *argv[])
{
QList<int> list;
for(int j=0; j<10; j++)
list.insert(list.end(), j);//表示在列表的最后插入直j
QList<int>::iterator i;
for(i=list.begin(); i!=list.end(); ++i)
{
qDebug() << (*i);
*i = (*i) * 10;
}
QList<int>::const_iterator ci;
for(ci=list.constBegin(); ci!=list.constEnd(); ++ci)
qDebug() << *ci;
return 0;
}
他所维护的是一个一指针数组,该数组存储的指针指向存储列表项的直,因此可以采用下标进行快速访问。
QList<QString> list;
string str="i am turing ,welcome to Qt.";
list<<str;
qDebug()<<list(0);
其中的QStringList 就是从这边继承下来的
QLinkedList<T>是一个链式列表,它以非连续的内存快保存数据,所以他是不能使用下标进行访问的,,也就是说他更适合插入的操作,时间是在O(1).
QVector<T>这个方式是在相邻的内存位置上保存数据的,也就是以数组的方式进行存储的,所以对起进行插入的操作的时候是一项很耗时间的,因为要有大量的数据进行一动。。当然也是可以通过下标对其进行访问的。
Qt的容器类为遍历其中的操作提供了两种方法:
1.java风格的迭代器,
2。STL风格的。
下面介绍STL风格
QList<T> QList<T>::const_iterator QList<T>::iterator///中间那个是只读的,最后是可读写的
QLinkedList<T> QLinkedList<T>::const_iterator QLinkedList<T>::iterator
下面那个同理
这个风格的迭代器是建立在指针的基础上的,++指向下一个,*返回指向的项。
下面再以QList来简单介绍他们的迭代器具体的API接口
QList<T>::begin()///返回指向第一个列表项的迭代器,这个是有效的
QList<T>::end()//返回的是容器最后列表项之后的下一个,也就是标记的是无效的那个,
#include <QDebug>
int main(int argc, char *argv[])
{
QList<int> list;
for(int j=0; j<10; j++)
list.insert(list.end(), j);//表示在列表的最后插入直j
QList<int>::iterator i;
for(i=list.begin(); i!=list.end(); ++i)
{
qDebug() << (*i);
*i = (*i) * 10;
}
QList<int>::const_iterator ci;
for(ci=list.constBegin(); ci!=list.constEnd(); ++ci)
qDebug() << *ci;
return 0;
}
- Qt中的容器类
- Qt中的容器类
- Qt容器类中的关联存储容器
- Qt中的常用容器类
- Qt中的容器类 QList QLinkedList QVector
- (二十三)Qt中的容器类简介
- qt 中的容器遍历
- QT容器中的通用算法
- Qt中的泛型容器
- Qt中的容器类 QList QLinkedList QVector..遍历及相关
- Qt 容器类
- QT容器类
- Qt 容器类
- Qt容器类
- Qt容器类
- Qt 容器类
- Qt容器类
- QT容器类
- 操作系统学习笔记一
- 使用Hibernate时如果遇到SQL数据库字段中有使用到SQL关键字时无法执行的解决方案
- 浏览器内核
- HDU1053 Entropy
- 2.3.4 实际应用的线性链表
- Qt中的容器类
- java连接sqlserver2005数据库
- pro contentProviders示例
- git简明操作教程
- AbstractFactory
- ios开发答疑录系列--关于IOS单利的思考
- 虚拟机中Ubuntu11.04如何开启ssh服务?
- dwz ria 1.4.4版本下左边导航菜单点 - 号不能收缩的解决方案
- 内存笔记