C++常问的Vector,map内存释放


#include <iostream>
#include<string>
#include <vector>
#include <map>
using namespace std;

int main()
{
vector<int> bgX{5, 10};
//方法1
bgX.erase(bgX.begin(), bgX.end());
bgX.clear();
bgX.shrink_to_fit();//c++ 11后增加的,具有异常回滚机制,比较符合鲁棒性

//方法2
vector<int>().swap(bgX);//强制空交换,达到彻底回收内存效果,简单粗暴,如果内存是使用指针申请内存的,注意先delete等释放操作

map<string, string>bgY{ {"x","y"},{"a","b"} };
//方法1
map<string, string>().swap(bgY);
return 0;
}

posted @ 2021-06-06 17:13  默*为  阅读(1013)  评论(0编辑  收藏  举报