我是一名学生,编写一个方法,以C++中的整数数组的末尾来删除零。该数组在结构中,并且该结构还具有一个int,用于跟踪数组的长度。当数组缩小时,是否需要删除元素?
该方法检查每个元素从最后一个开始,直到遇到第一个非零元素,并通过更改长度值将其标记为“最后一个元素”。然后该方法回到原来的“最后一个元素”,删除那些不在界限之外的元素(零)。
一个删除数组中的i
个元素如果i
比数组的更新的长度越大部分,看起来像这样:
if (i > p->length - 1) {
delete (p->elems + i); // free ith elem
即线是错误的,虽然。删除需要一个指针,是吗?所以我的感觉是,我需要恢复指向数组的指针,然后将i
添加到它,以便我将具有要删除的整数的内存位置。
我的直觉是否错了?错误是否微妙?或者,我有完全错误的想法吗?我开始怀疑:我真的需要释放这些原始物吗?如果他们不是原始人,我需要,在那种情况下,我会怎么样?
你可以展现结构的模样和“P”的声明? – 2010-10-29 23:28:00