>> Still, I would like to know how to do this.
I believe they use placement new. So they allocate a block of memory large enough to hold the data (or perhaps a little larger). Then, they use placement new to construct (via the copy constructor) each element one at a time.