Скажем, у меня есть два контейнера, в которых хранятся указатели на одни и те же объекты:
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
является оборванным указателем?
Я бы предпочел не использовать указатели с подсчетом ссылок. Как решить эту проблему?