C++如何删去数组中某个数字
时间: 2025-01-01 08:37:23 浏览: 53
在C++中,如果你想从数组中删除特定的数字,有几种方法可以实现,这取决于数组的具体情况和是否允许修改原数组:
1. **固定大小数组**: 如果数组已初始化并具有固定的大小,你可以遍历数组,找到目标元素,并将后续的元素向前移动一位。但是这种方法不适用于动态数组,因为它需要预先知道数组的大小。
```cpp
int arr[] = {1, 2, 3, 4, 5};
int target = 3;
for (size_t i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {
if (arr[i] == target) {
// Shift elements to the left
for (size_t j = i; j < sizeof(arr) - 1; j++)
arr[j] = arr[j + 1];
// Reduce size of array by 1
sizeof(arr)--;
break;
}
}
```
**注意**: 这种方法会改变数组的实际大小,不是真正意义上的“删除”,而是让多余的元素占据被删除位置后面的空位。
2. **动态数组(如std::vector)**: 对于`std::vector`,可以直接使用`erase()`函数删除指定位置或范围的元素。例如:
```cpp
std::vector<int> vec{1, 2, 3, 4, 5};
vec.erase(std::remove(vec.begin(), vec.end(), target), vec.end());
```
这里`std::remove`返回一个指向第一个待移除元素的新迭代器,`erase`则删除了从该迭代器到`end`的所有元素。
阅读全文
相关推荐

















