Говоря:
std::vector *p;
Вы объявляете указатель на вектор. Теперь вам нужно назначить область памяти для хранения содержимого векторного объекта, а не отдельных элементов. После этого вы можете добавлять, удалять, удалять и обновлять отдельные элементы по вашему желанию.
Что касается изменения размера вектора, то с памятью, о которой идет речь, ничего не произойдет, изменится только содержимое этой памяти, связанное с объектом Vector.
Одним из вариантов использования такой структуры является наличие динамического массива Векторов. Скажем, вам нужно вести список узлов смежности, но вы не уверены заранее, сколько узлов появятся до времени выполнения.