如何从数组中删除元素?

时间:2017-04-08 10:06:11

标签: c++ arrays function

我是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;

我认为我对这段代码没有正确的想法,这就是为什么我感到困惑。有人可以解释这个函数背后的想法以及如何正确编写它?

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

使用std::vectorstd::array代替c-array[])。 要从容器中删除元素,您应该使用std::vector + std::remove + std::vector::erase

答案 1 :(得分:0)

这一行将溢出数组,包括所有有人参与的恐怖,因为你正在索引一个结束。

array[i] = array[i + 1]; 

但除此之外,只要你跟踪你的数组有多少元素就应该没问题