vector的clear

  

要求你熟悉stl,言下之意就是要你熟悉stl的内部实现。

vector的clear动作并不回收内存,有点像内存泄露但又不是内存泄露,因为下次装入元素不用分配内存,直接使用这些预分配内存,

clear并不改变vector的capacity。vector内的元素如果是对象型会在clear时调用对应的析构,如果是指针型,vector并不负责释放

内存,这个会引起真正的内存泄露。

如果你想回收vector的内存,那么可以用swap技法,比如vector<type> tmp.swap(v) 。这将生成一个空的vector,然后与现有的

vector交换。

原文地址:https://www.cnblogs.com/encode/p/4600901.html