C++ string/vector手动调用析构函数回收内存

string本来在程序运行完会自动析构,但是在结束前调用

_CrtDumpMemoryLeaks()检查会有内存泄露,在结束后好像没法检查,可以手动析构释放内存。
但是不建议使用,可能有其他bug

string的手动析构:

string str="abc";

str.~basic_string();

vector的手动析构:

vector<string>vec;

vec.~vector();

基本类型元素不需要clear(),swap(),shrink_to_fit()什么的,可以直接析构。

建议把代码用大括号括一下,这样运行到大括号外面就可以自动析构。

 

顺便说一句,new和malloc的对象可以用delete[]回收,delete会自动调用析构函数,free不会自动析构。

posted @ 2022-07-12 14:14  科学修行的红客  阅读(606)  评论(0编辑  收藏  举报