4

是否有可能做这样的事情:

int *iarray = new int[10];
.....
//do something with it
.....

然后为了轻松删除第一个元素,请执行以下操作:

delete iarray;
iarray++;

似乎 delete (没有 [] )仍然删除整个数组。如果可能的话,删除第一个元素将是非常棘手和聪明的方法。这个想法不是我的,我在某个地方看到过,但它对我不起作用。难道我做错了什么?

4

3 回答 3

5

使用双端队列从前面删除一个元素——这就是发明这种结构的目的。

于 2012-12-03T21:51:42.843 回答
2

看起来你正在编写 C++,在这种情况下,delete诀窍是疯狂和可怕的,而且不会奏效。如果这是您真正需要的,您当然可以通过指针数学获得指向第二个元素的指针,但要实际删除第一项,您将不得不将所有内容移回一个。

于 2012-12-03T21:50:03.280 回答
1

这不会像你期望的那样工作。

在这里查看这个答案:

delete[] 怎么知道它是一个数组?

它几乎回答了你的问题。

于 2012-12-03T21:48:49.113 回答