我需要一些 C++ 项目的帮助。我要做的是从指针数组中删除给定的元素。教给我的技术是创建一个少一个元素的新数组,然后将旧数组中的所有内容复制到新数组中,指定元素除外。之后,我必须将旧阵列指向新阵列。
这是我已经拥有的一些代码:
顺便说一句,我正在使用自定义结构......
Data **values = null; // values is initialized in my insert function so it is
// populated
int count; // this keeps track of values' length
bool remove(Data * x) {
Data **newArray = new Data *[count - 1];
for (int i = 0; i < count; i++) {
while (x != values[i]) {
newArray[i] = values[i];
}
count -= 1;
return true;
}
values = newArray;
return false;
}
到目前为止,插入函数可以工作并输出填充的数组,但是当我运行 remove 时,它所做的只是使数组更小,但不会删除所需的元素。我每次都使用第 0 个元素作为控件。
这是我得到的输出:
count=3 values=[5,6,7] // initial insertion of 5, 6, 7
five is a member of collection? 0
count=3 values=[5,6] // removal of 0th element aka 5, but doesn't work
five is a member of collection? 0
count=4 values=[5,6,5] // re-insertion of 0th element (which is stored in
five is a member of collection? 0 // my v0 variable)
任何人都可以推动我朝着正确的方向完成这项工作吗?