为什么使用指针容器,而不是使用对象容器?
- 指针在内存中的大小是固定的(通常是4字节或8字节),不受指向的对象大小的影响。因此,使用指针容器(如
std::vector
、QList
等)存储对象的指针,可以节省内存,特别是当对象较大或者对象数量较多时。 - 基类指针可以包含派生对象的地址。这样, 基类指针的容器就能够包含任何派生对象的地址。进而,多态使得在运行时能够通过这些指针调用合适的函数。
指针容器的使用
- 当向容棉添加指针时,必须确保它已经被立即初始化了。如果不方便初始化,则应将其赋值为0。
- 当某个指针不再需要时,应移走并删除它。如果由于某些原因不方便立即将其移走,则被删除的指针应被重新赋值或者设置成0。
- 销毁 Qt 指针容器时,应调用 qDeleteAll ()函数。然后再使用容器类的clear()函数。