ポインタ ベクトルのメモリを解放するにはどうすればよいですか? コードは次のとおりです。
class A
{
private:
int x,y,z;
public:
A(param1, param2, param3)
{
x=param1;
y=param2;
z=param3;
}
~A()
{
//prompts an alertbox, warning me about the successful call of the destructor;
}
};
...
vector<A*> list;
list.push_back(new A(1,2,3));
list.erase(list.begin()+index);//SHOULD delete the object from the memory;
list.clear();
.erase()
メモリが解放されず、デストラクタも呼び出されないことがわかりました。すべてのリスト エントリで繰り返し使用しようとしdelete
ましたが、1 回の繰り返しでクラッシュします。エラーを回避するために、リスト エントリが既に NULL であるかどうかを既にチェックしています。何か不足していますか?また、私は STL のみを使用する必要があり、Boost は必要ありません。