📜  如何删除到数组 - C++ (1)

📅  最后修改于: 2023-12-03 15:24:04.260000             🧑  作者: Mango

如何删除数组元素 - C++

在C++中,数组元素的删除需要移动其余元素并重新分配数组。下面我们将演示几种通用的方法来删除数组元素。

方法一:使用拷贝

这是一种简单的方法,但效率较低。其思路是将要删除的元素之后的所有元素都向前移动一个位置,然后减少数组的大小。示例代码如下:

int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(arr[0]);
int index = 2;

// 移动元素
for (int i = index; i < len - 1; i++) {
    arr[i] = arr[i + 1];
}

// 减小数组大小
len--;

// 输出结果
for (int i = 0; i < len; i++) {
    cout << arr[i] << " ";
}

输出结果:

1 2 4 5
方法二:使用移动

这是一种更有效率的方法,其思路是将要删除的元素之后的所有元素向前移动一个位置,然后覆盖要删除的元素。示例代码如下:

int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(arr[0]);
int index = 2;

// 移动元素
std::move(arr + index + 1, arr + len, arr + index);

// 减小数组大小
len--;

// 输出结果
for (int i = 0; i < len; i++) {
    cout << arr[i] << " ";
}

输出结果:

1 2 4 5
方法三:使用vector容器

这是一种更简单和灵活的方法,其中vector容器可以根据需要动态调整大小和分配内存。示例代码如下:

vector<int> arr = {1, 2, 3, 4, 5};
int index = 2;

// 删除元素
arr.erase(arr.begin() + index);

// 输出结果
for (int i = 0; i < arr.size(); i++) {
    cout << arr[i] << " ";
}

输出结果:

1 2 4 5

以上三种方法都可以成功删除数组元素,具体使用哪种方法取决于实际情况。