gpt4 book ai didi

c++ - 为什么函数调用后内存不释放?

转载 作者:行者123 更新时间:2023-11-30 03:59:06 25 4
gpt4 key购买 nike

请参阅下面的代码:

void foo() {
std::ifstream f("data");
string line;
vector<string> r;
while(getline(f, line)) {
r.push_back(line);
}
f.close();
r.resize(0);
}

int main(int argc, char *argv[])
{
foo();
cout << "load done" << endl;
while(1) {;}
return 0;
}

我使用 while(1) 循环检查 htop 工具中的内存使用情况,r 可能使用 5GB RES,但是在 load done 打印后,RES 仍占用 5GB。有什么问题?

最佳答案

Resize 不保证底层内存将被释放。

你应该试试 shrink_to_fit ,这将减少容器的容量以适应其大小。

关于c++ - 为什么函数调用后内存不释放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27102742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com