vector如何释放内存

关于vector释放内存

考个csp认证被这个鬼问题卡了,真是服了。

1
2
vector<int> vec;
vec.clear(); // 不会释放内存,仅仅长度为0。

释放内存:

  1. 将要释放内存的vector与一个空vector进行交换,然后将空vector释放掉。
1
vector<int>().swap(vec);
  1. 在调用clear()之后再调用shrink_to_fit(),将vector的容量减小到与其大小相等,从而释放多余的内存空间。
1
2
vec.clear();
vec.shrink_to_fit();
  1. 使用resize()方法重新分配vector的大小,从而释放多余的内存空间。
1
vec.resize(n);
Author

Jesselrj

Posted on

2024-03-31

Updated on

2024-03-31

Licensed under

Comments