Both store them in the vector, the vector itself is free in how it wants to store them but it usually uses the free store.
There is a big difference though :
vector.push_back(* new object());
This dynamically allocates an object
object and then saves a copy of the object in the vector, the pointer pointing to the newly allocated object
is then instantly destroyed.
This way causes a memory leak because you do not delete
the object
you have allocated with new
nor do you save the address for later use.
vector.push_back(object());
This creates a temporary object
which is copied and stored in the vector and then destroyed, which is the "correct" way of adding objects to your vector.