是否有可能做这样的事情:
int *iarray = new int[10];
.....
//do something with it
.....
然后为了轻松删除第一个元素,请执行以下操作:
delete iarray;
iarray++;
似乎 delete (没有 [] )仍然删除整个数组。如果可能的话,删除第一个元素将是非常棘手和聪明的方法。这个想法不是我的,我在某个地方看到过,但它对我不起作用。难道我做错了什么?
是否有可能做这样的事情:
int *iarray = new int[10];
.....
//do something with it
.....
然后为了轻松删除第一个元素,请执行以下操作:
delete iarray;
iarray++;
似乎 delete (没有 [] )仍然删除整个数组。如果可能的话,删除第一个元素将是非常棘手和聪明的方法。这个想法不是我的,我在某个地方看到过,但它对我不起作用。难道我做错了什么?
使用双端队列从前面删除一个元素——这就是发明这种结构的目的。
看起来你正在编写 C++,在这种情况下,delete
诀窍是疯狂和可怕的,而且不会奏效。如果这是您真正需要的,您当然可以通过指针数学获得指向第二个元素的指针,但要实际删除第一项,您将不得不将所有内容移回一个。