对于下面的代码的载体:从一个指针删除的指针
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);
..但这并不奏效,我得到了一个分割错误,有什么想法?
你需要更好地解释它。目前完全不清楚。 “我想现在将p设置为已删除的矢量地址” - 这是什么意思?你的代码中没有矢量被擦除,没有理由用'p'做任何事情。 – AnT
基本上想要p是这个新的向量的地址,因为擦除了这个向量并删除了某个标记。 –
@约翰史密斯,没有新的矢量。旧的矢量是唯一的矢量。它通过调用“擦除”而持续存在。 –