в этом случае ptr
является int*
, а не указателем на vector<int>
, поэтому он не может выполнять векторные операции. Когда вы делаете назначение:
ptr = &v[0];
вы назначаете указатель на адрес, содержащий целое число в v [0], а не назначаете ссылку на вектор. Чтобы сделать то, что вы хотите, вам нужно сделать следующее:
int num;
vector<int> v;
vector<int>* ptr;
ptr = &v;
ptr->push_back(num);