I\'m trying to delete everything from a std::vector by using the following code
vector.erase( vector.begin(), vector.end() );
vector.clear() is effectively the same as vector.erase( vector.begin(), vector.end() ).
If your problem is about calling delete for each pointer contained in your vector, try this:
#include
template< typename T >
struct delete_pointer_element
{
void operator()( T element ) const
{
delete element;
}
};
// ...
std::for_each( vector.begin(), vector.end(), delete_pointer_element() );
Edit: Code rendered obsolete by C++11 range-for.