As you've mentioned above, the vector container is not responsible for the memory you've allocated. It is you, who responsible for the memory allocation as well as deallocation.
However, sometimes it is more convenient for the container to collect garbage. The boost provides you with special pointer containers allowing for implicit deallocation.
upd
I suppose, that it is also possible to utilize smart pointers with a safe coping policy like reference count pointers.
In his book Stroustrop says that most vector should be vector of containers. I wonder why he didn't provide any sample how to delete all those pointers
As far as I know the STL containers have been designed as object containers. There are some rules:
i) The object can be copied without any side effect and the copy has to be equivalent to the original object.
ii) The object can be copied with operator= or without any side effect referenced by operator=.
iii) The object can be destroyed by calling it's destructor.
STL containers are templates, theoretically they can be instanced for any type. Still, practically they can be used only with objects that obey the rules stated above.
well i have not used such a thing but anyway you can create an interface containing a vector and u can have the destructor of the interface to deal with deallocation of all the objects in the vector.