删除数组中的元素c++
时间: 2023-08-12 14:54:45 浏览: 39
要删除数组中的元素,可以使用以下方法:
1. 移动元素:遍历数组,找到要删除的元素,并将其后面的元素向前移动一个位置。最后,将数组的大小减一。
```cpp
#include <iostream>
using namespace std;
void deleteElement(int arr[], int& size, int element) {
int pos = -1;
for (int i = 0; i < size; i++) {
if (arr[i] == element) {
pos = i;
break;
}
}
if (pos != -1) {
for (int i = pos; i < size - 1; i++) {
arr[i] = arr[i + 1];
}
size--;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
deleteElement(arr, size, 3);
cout << "Resultant array: ";
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
这段代码删除了数组中的元素3,并输出结果为:1 2 4 5。
2. 使用标志数组:创建一个新数组或标志数组,将要删除的元素标记为特定值(例如-1)。然后遍历原始数组,将非特定值的元素复制到新数组或者重新构造原始数组。
```cpp
#include <iostream>
using namespace std;
void deleteElement(int arr[], int& size, int element) {
int flagArr[size];
int newSize = 0;
for (int i = 0; i < size; i++) {
if (arr[i] != element) {
flagArr[newSize++] = arr[i];
}
}
size = newSize;
for (int i = 0; i < size; i++) {
arr[i] = flagArr[i];
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
deleteElement(arr, size, 3);
cout << "Resultant array: ";
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
这段代码同样删除了数组中的元素3,并输出结果为:1 2 4 5。
以上是两种常见的删除数组元素的方法,你可以根据具体的需求选择其中一种来实现。