vector的clear和swap

vector的clear()操作只是清空vector的元素,而不会将内存释放掉

vector<int> vec1{ 1,2,3,4,5 };	
vec1.clear();	
cout<<"cap  "<<vec1.capacity();

 这时cap=5;

使用vector的swap操作:

vector<int>().swap(vec1);

就是删除元素并且释放内存。推荐这种方式。

vector采取的是每次申请空间,就将内存变为原来的两倍,浪费了很多内存,这时我们可以使用shrink_to_fit使得申请的空间刚好等于vector的实际size()。

原文地址:https://www.cnblogs.com/dingxiaoqiang/p/6700043.html