QT风格的STL迭代器使用

Qt提供了一组通用的基于模板的容器类。对比C++的标准模板库中的容器类,Qt的这些容器更轻量、更安全并且更容易使用。

Qt的容器类在速度、内存消耗和内联代码方面进行了优化。

 

存储在Qt容器中的数据必须是可赋值的数据类型,这种数据类型必须提供一个默认的构造函数,一个复制构造函数,一个赋值

操作运算符。

 

QList类、QLinkedList类、QVector类:

容器类 查 找 插 入 头部添加 尾部添加
QList O(1) O(n) Amort.O(1) Amort.O(1)
QLinkedList O(n) O(1) O(1) O(1)
QVector O(1) O(n) O(n) Amort.O(1)

 

QList类:

QList是最常用的容器类,它存储给定数据类型T的一列数值。继承自QList的子类有: QItemSelection、QQueue、

QSignalSpy、QStringList、QTestEventList。

QList成员函数:

void QList::append(const QList  &value)      //添加一个值到列表中

QList list;
list.append("one");
list.append("two");
//list = {"one" "two"}

const T&QList :: at(int i)const    //返回列表中索引的位置

 

QList :: iterator QList :: begin()    //返回指向列表中的第一个元素

 

QList::const_iterator QList::cbegin() const      //返回指向列表中的第一个const STL风格迭代器

 

void QList :: clear()               //清空列表中所有元素

 

QList :: const_iterator QList :: constBegin()const     //返回指向列表中第一个元素的const STL样式迭代器

 

QList :: const_iterator QList :: constEnd()const     // 返回指向列表中最后一个元素之后的const STL样式迭代器

 

const T&QList :: constFirst()const         //返回对列表中第一个元素的const引用。列表不能为空

 

int QList :: count(const T&value)const        //返回列表中的出现次数

 

QList :: const_reverse_iterator QList :: crbegin()const        //返回一个const STL样式的反向迭代器,它以相反的顺序指向列表中的第一个元素

 

bool QList :: empty()const             //它等效于isEmpty(),true如果列表为空则返回

 

QList :: iterator QList :: end()        //返回指向列表中最后一个元素之后的STL样式迭代器

 

void QList :: insert(int i,const T&value)       //在列表中的索引位置i处插入。如果i <= 0,则该值将添加到列表中。

QList list;
list << "alpha" << "beta" << "delta";
list.insert(2, "gamma");
// list: ["alpha", "beta", "gamma", "delta"]

void QList :: move(int from,int to)        //将索引位置的项目索引位置移动。 

QList list;
list << "A" << "B" << "C" << "D" << "E" << "F";
list.move(1, 4);
// list: ["A", "C", "D", "E", "B", "F"]

此处省略...

更多成员函数可以参考Qt文档。

 

QLinkedList类的使用:

QLinkedList 是一个链式链表,它以非连续的内存块保存数据。

QLinkedList 不能使用下标,只能使用迭代器访问它的数据项。

 

QLinkeList成员函数:

参照QLIst成员函数,大多功能相似,也可以参考Qt文档,因为函数功能类似且比较多,不一一列举了。

 

QVector类的使用:

QVector 是Qt的通用容器类之一。它将其元素存储在相邻的内存位置,并提供快速的基于索引的访问。

QVector number;        //创建一个存储 int类型 QVector
QVector str;       //创建一个存储 QString类型 QVector

 

QVector将其元素存储在向量(数组)中,

QVector vector(200);    //初始化一个包含200个元素的vector

 

更多QVector的使用参考Qt文档,成员函数实在太多,偷一把懒了吧。QVector函数使用

 

关于Qt的更多使用后续会继续更新...

你可能感兴趣的:(Qt)