Нет.
Когда вы удаляете указатель из контейнера, все, что вы сделали, это взяли это значение указателя из контейнера, ничего не было удалено.(то есть: у указателей нет деструктора.)
Однако опасно иметь указатели вещей в контейнерах.Подумайте:
std::vector<int*> v;
v.push_back(new int());
v.push_back(new int());
v.push_back(new int());
Если вы никогда не пройдете через контейнер и не удалите каждый из них, вы просочились.Хуже того, это не исключение.Вы должны использовать контейнер указателя , который удалит объекты, на которые он указывает, когда они будут стерты.(И все стираются, когда контейнер разрушается.)
В вашем случае, тем не менее, поскольку вы используете указатель в разных местах, я не вижу аргумента против shared_ptr
;это именно то, для чего это было сделано.