- A+
qDeleteAll:专门用于元素为指针的容器,对容器或者迭代器中的每个对象进行delete操作,而不是从容器中移除对象。源代码如下:
void qDeleteAll(ForwardIterator begin, ForwardIterator end) { while (begin != end) { delete *begin; ++begin; } } ```
QList<T> list;
1、当T的类型为指针时,调用clear方法能置空,即list的size为0,但并不能释放其指针元素的内存。qDeleteAll可以释放容器元素内存,但没有对容器的置空操作,也就是size没变。所以qDeleteAll之后必须加上clear方法。也就是说,在T为指针的情况下,如果想要清空容器中的元素,必须先调用qDeleteAll方法,再调用clear方法。
2、当T为对象时,直接调用clear()方法就可以清空list,并清空内存