13-容器类概述
3.3.1 容器类概述
Qt提供了多个基于模板的容器类,这些容器类可以用于存储指定类型的数据项,例如常用的字符串列表类QStringList就是从容器类 QList
Qt的容器类比标准模板库(STL)中的容器类更轻巧、安全和易于使用。这些容器类是隐式共享和可重入的,而且它们进行了速度和存储优化,因此可以减少可执行文件的大小。此外,它们还是线程安全的,也就是说它们作为只读容器时可被多个线程访问。
容器类是基于模板的类,如常用的容器类QList
例如用QList
QList<QString> aList;
这样定义了一个QList容器类的变量aList,它的数据项是QString,所以aList可以用于处理字符串列表,例如:
aList.append("Monday");
aList.append("Tuesday");
aList.append("Wednesday");
QString str=aList[0];
Qt的容器类分为顺序容器(sequential containers)和关联容器(associative containers)。
容器迭代类用于遍历容器里的数据项,有Java类型的迭代类和STL类型的迭代类。Java类型的迭代类易于使用,提供高级功能,而STL类型的迭代类效率更高一些。
Qt还提供了foreach宏用于遍历容器内的所有数据项。