说我有两个容器存储指向相同的对象:从STL容器中移除元素时调用析构函数吗?
std::list<Foo*> fooList;
std::vector<Foo*> fooVec;
比方说,我通过一个,如果它的方法去除从这些容器中的一个对象:
std::vector<Foo*>::iterator itr =
std::find(fooVec.begin(), fooVec.end(), pToObj);
fooVec.erase(itr);
CppReference说,这个电话对象的析构函数。这是否意味着指向fooList
中的对象的指针是一个悬挂指针?
我不想使用引用计数的指针。这个问题怎么处理?
使用引用计数的指针。这就是他们的目的。 – Puppy 2010-07-24 18:31:54