文章目录
一、Qt的容器类简介
1.1 关联容器与顺序容器
1、顺序容器:QList,QLinkedList,QVector,QStack和QQueue。
2、关联容器:QMap,QMultiMap,QHash,QMultiHash和QSet。
1.2 嵌套与赋值
容器也可以嵌套使用,例如QMap<QString,QList >,这里键的类型是QString,而值的类型是QList,需要注意,在后面的“> >”符号之间要有一个空格,不然编译器会将它当做“>>”操作符对待。
在各种容器中所存储的值的类型可以是任何的可赋值的数据类型,该类型需要有一个默认的构造函数,一个拷贝构造函数和一个赋值操作运算符,像基本的类型double,指针类型,Qt的数据类型如QString、QDate、QTime等。但是QObject以及QObject的子类都不能存储在容器中,不过,可以存储这些类的指针,例如QList<QWidget*>。
二、遍历容器
遍历容器主要有三种方法:Java风格迭代器、STL风格迭代器(标准C++)、foreach关键字(按顺序遍历一个容器中的项目)。
2.1 Java风格迭代器
Java风格迭代器在使用时比STL风格迭代器要方便很多,但是在性能上稍微弱于后者。对于每一个容器类,都有两个Java风格迭代器数据类型:一个提供只读访问,一个提供读写访问。