如何向数组中插入一个数字?
时间: 2024-10-03 21:02:15 浏览: 15
在C++中,如果你有一个已排序的数组(比如`std::vector<int>`或固定大小的数组),你可以使用`insert`成员函数来添加元素。对于动态大小的容器如`std::vector`,操作相对简单:
```cpp
#include <vector>
// 假设你已经有了一个名为arr的std::vector<int>
int num = 5; // 需要插入的数
// 找到插入位置(如果数组已经按升序排列)
auto it = std::find(arr.begin(), arr.end(), num); // 如果num不在数组中,it == arr.end()
// 插入元素
if (it != arr.end()) {
arr.insert(it, num);
} else {
arr.push_back(num); // 如果num比所有现有元素都大,直接加在末尾
}
```
对于固定大小的数组,你需要创建一个新的数组,然后复制旧数组的内容,直到找到合适的位置,再添加新元素,最后替换掉旧数组。例如,使用`C-style`数组:
```cpp
int arr[10] = {1, 2, 3}; // 假设已有数组
int num = 5;
size_t index = sizeof(arr) / sizeof(arr[0]); // 获取数组长度
// 如果数组满,不插入
if (index == sizeof(arr) / sizeof(int)) {
std::cout << "Array is full, cannot insert." << std::endl;
} else {
for (size_t i = 0; i < index; ++i) {
if (arr[i] > num) {
memmove(arr + i + 1, arr + i, sizeof(int) * (index - i)); // 移动元素
arr[i] = num; // 插入新元素
break;
}
}
}
```