【发布时间】:2011-07-30 11:27:28
【问题描述】:
似乎std::vector 不会释放内存,即使我调用pop_back()、clear() 或resize()。
有什么好的方法可以解决这个问题吗?例如,在以下代码中:
#include<vector>
using namespace std;
int main(){
int i, j;
vector<int> v[10000];
for( i=0 ; i<10000 ; i++ ){
for( j=0 ; j<100000000 ; j++ ){
v[i].push_back(j);
}
while(v[i].size()>0){
v[i].pop_back();
}
v[i].resize(1);
}
return 0;
}
向量在完成之前不会释放任何内存。
【问题讨论】:
-
值得注意的是,在C++0x中,你可以做到
v.shrink_to_fit()。 -
抱歉重复的问题。