Learning Qt 5! (11):容器

Qt 学习之路 2(38):存储容器Qt 学习之路 2(39):遍历容器,涉及到数据结构知识,需再看。
Qt 学习之路 2(40):隐式数据共享可参考Qt之美(三):隐式共享一起看。

摘录几点:

所有的容器都可以嵌套。例如,QMap<QString, QList< int > >是一个映射,其键是QString类型,值是QList< int >类型,也就是说,每个值都可以存储多个 int。这里需要注意的是,C++ 编译器会将连续的两个 > 当做输入重定向运算符,因此,这里的两个 > 中间必须有一个空格。

能够存储在容器中的数据必须是可赋值数据类型。所谓可赋值数据类型,是指具有默认构造函数、拷贝构造函数和赋值运算符的类型。绝大多数数据类型,包括基本类型,比如 int 和 double,指针,Qt 数据类型,例如QString、QDate和QTime,都是可赋值数据类型。但是,QObject及其子类(QWidget、QTimer等)都不是。也就是说,你不能使用QList< Q Widget>这种容器,因为QWidget的拷贝构造函数和赋值运算符不可用。如果你需要这种类型的容器,只能存储其指针,也就是QList<QWidget *>。

如果要使用QMap或者QHash,作为键的类型必须提供额外的辅助函数。QMap的键必须提供operator<()重载,QHash的键必须提供operator==()重载和一个名字是qHash()的全局函数。

猜你喜欢

转载自blog.csdn.net/u013213111/article/details/86159447