wow. I was afraid of that. I thought maybe with as "intelligent" as container classes are, they could account for that and allocate new memory for each Account on their own. But ok, I will do it.
Trust me, the std::vector *is* intelligent but not clairvoyant. Vector does perform a deep copy of itself but it is only a container. Remember that. It invokes the copy constructor of each element it contains. In your case, the elements are pointers. vector has no way of knowing what each of the elements are or how they should be copied. Therefore it is a requirement that each type used to build a vector is copyable on its own.