QList不同于std::list,QList根据容器元素类型的不同,采用不同的数据结构来处理,从而节省内存、提高效率。
QList的模板参数T大概分为两种情况:
(1)如果T占用的内存较多 或 T占用内存少但有构造函数
QList将每个元素存放在堆上,再维护一个指针数组,指向这些元素。
所以可以根据索引快速查找元素,但删除操作速度较慢。
(2)如果T是一个指针类型 或 T所占字节数小于指针所占字节数
QList将T直接存放在指针数组中
QList不同于std::list,QList根据容器元素类型的不同,采用不同的数据结构来处理,从而节省内存、提高效率。
QList的模板参数T大概分为两种情况:
(1)如果T占用的内存较多 或 T占用内存少但有构造函数
QList将每个元素存放在堆上,再维护一个指针数组,指向这些元素。
所以可以根据索引快速查找元素,但删除操作速度较慢。
(2)如果T是一个指针类型 或 T所占字节数小于指针所占字节数
QList将T直接存放在指针数组中