A vector does not destroy an object. He replaces it.
For instance:
vector< A> myVector;
A myNewObject;
myVector[0] = myNewObject;
This means that the assignment operator (A & A::operator=( const A&)) will be called for myVector[0]. There is no destruction.
Destruction is performed when the vector itself is destroyed or when the memory is redistributed (in this case, the copy constructor is also used to copy objects from the old location to the new location before destroying the old ones).
Then edit.
In the case of push_back, destruction should be determined by redistribution.