用erase删掉一个元素,为何没调用相应的destructor?
先定义一个类myclass:
class myclass{
public:
myclass();
~myclass();
dosomething();
}
主函数如下:其中myvector是装有该类指针的容器。
int main()
{
vector<myclass *> myvector;
myclass* newPtr;
newPtr = new myclass;
myvector.push_back(newPtr); // 往容器中增加一个类指针
myvector.erase( myvector.begin() );// 删掉这个类指针
int j = myvector.size();// 运行后显示为0,说明该容器为空
myvector[0]->dosomething();//可是这句仍可运行,证明myvector中
//还有指针存在,并没被删掉,怎么回事?
return 0;
}