Каков самый короткий фрагмент C++, который вы можете создать, чтобы безопасно очистить вектор или список указателей? (Предполагается, что вы должны вызвать удаление на указатели?)Очистка списка/вектора STL
list<Foo*> foo_list;
Я предпочел бы не использовать подталкивание или обернуть свои указатели с помощью смарт-указатели.
Умные указатели (включая Boost :: shared_ptr) удалят ваши объекты в ситуациях, когда у вас будет много сложного видения, что это делается вручную. – 2010-04-19 20:45:16
Это действительно опасно полагаться на код за пределами контейнера, чтобы удалить указатели. Что происходит, когда контейнер уничтожается из-за брошенного исключения, например? Я знаю, что вы сказали, что вам не нравится повышение, но, пожалуйста, рассмотрите контейнеры с указателем [boost pointer] (http://www.boost.org/doc/libs/1_37_0/libs/ptr_container/doc/ptr_container.html). – 2008-11-20 23:14:26
i second you opinion – 2010-03-22 03:52:40