Your interpretation is wrong. Calling push_back() makes a copy of the stack object to insert in the vector.
This creates an object with automatic storage duration:
b.push_back(B(10,20));
which immediately goes out of scope. The destructor is called on the stack object but a new copy exists in the vector.
http://www.cplusplus.com/reference/vector/vector/[
^]