摘要:本文主要向大家介绍了 C/C++知识点之C++ 如何快速清空vector以及释放vector内存?通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。
本文主要向大家介绍了 C/C++知识点之C++ 如何快速清空vector以及释放vector内存?通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。
平时我们在写代码时候,有思考过要主动去释放vector的内存吗?
1、对于数据量不大的vector,没有必要自己主动释放vector,一切都交给操作系统。
2、但是对于大量数据的vector,在vector里面的数据被删除后,主动去释放vector的内存就变得很有必要了!
读者可以新建一个控制台程序,把代码运行起来看输出,且看代码:
[cpp] view plain copy
#include
#include
#include
#include
#include
#pragma comment(lib, "Psapi.lib")
using namespace std;
//GetCurPorcessMemory
bool GetCurProcessMemory(HANDLE handle, std::wstring& workingSize, std::wstring& peakWorkingSize)
{
//HANDLE handle = GetCurrentProcess();
PROCESS_MEMORY_COUNTERS pmc;
if (GetProcessMemoryInfo(handle, &pmc, sizeof(pmc)))
{
int size = pmc.WorkingSetSize/1024;
wchar_t buf[10] = {0};
_ltow(size, buf, 10);
workingSize = std::wstring(buf);
size = pmc.PeakWorkingSetSize/1024;
_ltow(size, buf, 10);
peakWorkingSize = std::wstring(buf);
return true;
}
return false;
}
int _tmain(int argc, _TCHAR* argv[])
{
std::wstring wszWorking, wszPeakWorking;
vector
for (int i=0; i<1000000; i++)
{
ary.push_back("hello vector");
}
wchar_t wch;
wcin >> wch;
GetCurProcessMemory(GetCurrentProcess(), wszWorking, wszPeakWorking);// 此时检查内存情况
wcout << "Working : " << wszWorking.c_str() << " PeakWorking : " << wszPeakWorking.c_str() << endl;
wcin >> wch;
//
ary.clear();
wcout << "vector clear" << endl;
wcout << "vector capacity " << ary.capacity() << endl;
GetCurProcessMemory(GetCurrentProcess(), wszWorking, wszPeakWorking);// 此时再次检查
wcout << "Working : " << wszWorking.c_str() << " PeakWorking : " << wszPeakWorking.c_str() << endl;
wcin >> wch;
//vector
ary.swap(vector
wcout << "vector swap" << endl;
wcout << "vector capacity " << ary.capacity() << endl;// 此时容量为0
GetCurProcessMemory(GetCurrentProcess(), wszWorking, wszPeakWorking);// 检查内存
wcout << "Working : " << wszWorking.c_str() << " PeakWorking : " << wszPeakWorking.c_str() << endl;
wcout << "vector size : " << ary.size() << endl;//0
//getchar();
system("pause");
return 0;
}
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号