c++ 如何主动释放内存

比如我有一个vector a存了很多数据,我在运算中把这个vector分成了b,c两个vector,
这时原本的vector a已经没用了,但是依然在占用内存,
怎么才能释放掉呢?

和另外一个小一点的vector交换。

a.swap(vector<type>());

free()
参考

a如果是动态申请的,delete就好了,如果不是,那只能等到其作用域结束自动释放,你想手动释放,就以申请动态内存的方式创建vector对象,但要注意,如果其元素也是指向动态内存的指针,那么要先释放元素内存(可以使用智能指针节省这一步),如果把这样的容器拆成另外两个容器bc,那么,直接delete原容器a就好了,这时即便不是智能指针也不会造成内存泄露,因为bc的指针“接手了这段内存”,更不用担心有共享计数器的shared_ptr。