vector中保存指针时,正确的析构方法:(调用erase,clear不会自动调用A的析构函数)
#include <vector>
#include <iostream>
#include <list>
using namespace std;
class A
{
public:
~A()
{
cout << "A destructor invoked!" << endl;
}
};
void main()
{
vector<A*> avec;
avec.push_back(new A());
avec.push_back(new A());
avec.push_back(new A());
avec.push_back(new A());
vector<A*>::iterator begin = avec.begin(), end = avec.end();
for (;begin != end; ++begin)
{
delete *begin;
}
avec.erase(avec.begin(), avec.end());
}
本文探讨了在使用C++的Vector容器存储指针时,正确调用析构函数的方法,通过实例展示了如何手动释放内存,避免资源泄露。
383

被折叠的 条评论
为什么被折叠?



