ptr_vector manages the lifetime of the pointed-to objects automatically. You don't have to call delete yourself.
At the same time, it avoids the overhead of shared_ptr that would get if you used a vector of shared_ptrs, which is often not necessary.