The vector doesn't destroy the object. It replaces it.
For example:
vector< A> myVector; // Do some initialization, etc.
A myNewObject;
myVector[0] = myNewObject; // Replace the object.
That means the assignment operator (A& A::operator=( const A&)) will be called for myVector[0]. There is no destruction there.
The destruction is done when the vector itself is destructed, or when the memory is reallocated (in this case, the copy constructor is also used, to copy the objects from the old location to the new location, before destroying the old ones).
Later edit
In push_back case, the destruction must be determined by a reallocation.