假设我已经定义的类是这样的:清除指针的矢量
class foo {
private:
std::vector< int* > v;
public:
...
void bar1()
{
for (int i = 0; i < 10; i++) {
int *a = new int;
v.push_back(a);
}
};
void bar2()
{
std::vector<int>::iterator it = v.begin();
for (; it != v.end(); it++)
std::cout << (*it);
v.clear();
}
};
总之,我推回了一些三分球矢量,后来我清除载体。问题是,这段代码是否有内存泄漏?我的意思是通过清除矢量,指针是否正确删除?
你居然推只有一个指针向量; 'bar1'中的'for'循环只执行'new int;'行,因为它没有大括号,'i +++'是一个语法错误,并且......好吧,我猜这是伪代码。 –
@ Frerich Raabe:编辑... – mahmood
您还需要一个int指针向量:'std :: vector < int* > v;'而不是'std :: vector < int > v;' – juanchopanza