Стирание из указателя на вектор указателей

Для следующего кода:

vector<int*> x;
vector<int*>* p;

// say I initiated x with a couple of integers
p  = &x;

//erases the indicie of the given integer
void erase(vector<int*> &x, int n){
int i = 0;
while (*(x[i]) != n){
i++;
}
delete x[i];
x.erase(x.begin() + i);
}

Если я позвоню код erase(*p, 2); Я хочу сейчас установить p на этот адрес этого вектора, который был стерт … я пытаюсь p = &(*p); … но это не работает, и я получаю ошибку сегментации, есть идеи?

0

Решение

Тебе не нужно ничего делать. p еще указывает на &x так же, как это было до того, как вы позвонили erase(), Удаление элемента из вектора не меняет адрес вектора.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector