我对C++仍然很陌生,所以这对我来说是一个学习过程。此外,我知道我应该开始使用矢量做到这一点,但我有一个指定数组所以我想编写一个函数,消除阵列中的所有元素重复练习,但我收到错误从数组中删除多个元素并创建一个动态数组C++
C2100:非法的间接
,如果有人能在正确的方向
int main()
{
int *t;
int removel[9] = { 1, 1, 1, 2, 3, 4, 5, 6, 6, };
t = removeAll(removel, 9, 1);
for (int i = 0; i < 8; i++)
cout << t[i] << " ";
}
int* removeAll(int list[], int listlength, int removeitem)
{
int count = 0;
int* list2;
int removeindex;
int length;
int tempindex;
for (int i = 0; i < listlength; i++)
{
if (removeitem == list[i])
count++;
}
length = listlength - (count + 1);
list2 = new int[length];
int j;
while (j<=length)
{
remove_if(list[0], list[listlength - 1], removeitem);
for (j = 0; j < length; j++)
if (list[j] == NULL)// not sure what the remove_if func puts inplace of the removed element
continue;
else
list2[j] = list[j];
}
return list2;
}
#1在你需要它们之前不要声明你的变量。 – LogicStuff
使用矢量。我没有看到你想要使用数组的理由。 Array的大小是固定的。 – Auriga
它为我正在使用的教科书的练习,只是试图学习如何完成这项任务。 – cj881