我是c ++的新手,我正在编写一个数组操纵器程序。你会如何编写一个从数组中删除元素的函数?你会传递什么参数?该函数不能有任何cout或cin语句,它们必须在main中。你怎么称呼这个功能?我编写了一个向数组添加元素的函数,它看起来像这样:
int insertValue(int arr[], int value, int pos, int size)
if (size == 10)
cout << "Array full" << endl;
else
{
int i;
for (i = size - 1; i >= pos; --i) {
arr[i + 1] = arr[i];
}
arr[pos] = value;
++size;
}
cout << endl;
return size;
此功能在调用时有效。从数组中删除元素并将所有内容移到左侧是否遵循相同的布局?这就是我迄今为止的功能:
int removeValue(int arr[], int value, int pos, int size)
for (int i = pos; i < size; ++i) {
array[i] = array[i + 1];
}
arr[pos] = value;
return size;
我认为我对这段代码没有正确的想法,这就是为什么我感到困惑。有人可以解释这个函数背后的想法以及如何正确编写它?
感谢您的帮助!
答案 0 :(得分:2)
使用std::vector
或std::array
代替c-array
([]
)。
要从容器中删除元素,您应该使用std::vector + std::remove + std::vector::erase
答案 1 :(得分:0)
这一行将溢出数组,包括所有有人参与的恐怖,因为你正在索引一个结束。
array[i] = array[i + 1];
但除此之外,只要你跟踪你的数组有多少元素就应该没问题