从指针向指针向量中删除

时间:2012-11-20 19:56:44

标签: c++ pointers vector delete-operator

以下代码:

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); ..但这不是工作,我得到一个分段错误,任何想法?

1 个答案:

答案 0 :(得分:2)

你不应该做任何事情。 p仍然指向&x,就像调用erase()之前一样。从向量中删除元素不会更改向量的地址。