假設我已經定義的類是這樣的:清除指針的矢量
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