请教:关于vector的内存释放
Cafes 2003-10-15 05:28:08 刚开始接触STL的东西,遇到些问题想请教一下前辈们
假设有这样一个声明
vector<vector<int> *> _assignment_stack;
给这个vector赋值如下
for (int i=0; i<variables().size(); ++i)
_assignment_stack.push_back(new vector<int>);
具体每个_assignment_stack[i]有如下方式加入新的值
int literal
....
_assignment_stack[dl]->push_back(literal);
现在问题是
如何把这个_assignment_stack所占的内存空间彻底释放?
下面这几种方法有没有正确的?它们的区别是什么?
1. for (int i=0; i<_assignment_stack.size(); ++i){
delete _assignment_stack[i];
}
2. _assignment_stack.clear();
3. for (int i=0; i<_assignment_stack.size(); ++i){
(*_assignment_stack[i]).clear();
}