Use boost::ptr_vector to store the values, instead of std::vector to make the usage of pointers in a container easier.