For one of my projects, what I really wanted to do was this (simplifying it to the bare minimum);
struct Move { int src; int dst; }; struct MoveTree
The MoveTree elements in std::vector are in an allocated (as in new []) array. Only the control information (the pointer to the array, the size, etc) are stored within the std::vector within MoveTree.
MoveTree
std::vector
new []