You do not need to use new on foo, since foo is a vector, not a pointer to a vector (i.e. std::vector *foo).
If you are coming from Java or C#, you may want to consider using std::vector (a vector of objects) instead of a vector of pointers. It really depends on what you want to do.