在数组中插入一个数c++
时间: 2024-10-09 18:15:20 浏览: 40
在C++中,向数组中插入一个数通常有两种方法,取决于数组是否已排序以及你想插入的具体位置:
1. **动态数组** (std::vector):如果你使用的是动态数组,如`std::vector<int>`,可以简单地使用`push_back()`函数在数组末尾添加元素,或者直接通过索引来插入:
```cpp
std::vector<int> arr = {1, 2, 3};
arr.push_back(c); // 在末尾插入 c
```
如果需要在特定索引插入,可以先调整后续元素的位置:
```cpp
int index = 2; // 想要插入的位置
arr.insert(arr.begin() + index, c); // 在指定位置插入 c
```
2. **固定大小数组** (C-style array):对于固定大小的数组,由于它们的长度在声明时确定,无法直接插入新的元素。这时通常的做法是创建一个新的更大数组,将原数组内容复制过去,然后把新元素放到合适的位置:
```cpp
int arr[] = {1, 2, 3};
int size = sizeof(arr) / sizeof(arr[0]);
int capacity = size + 1; // 新容量
int* newArr = new int[capacity];
for(int i = 0; i < size; ++i)
newArr[i] = arr[i]; // 复制旧元素
newArr[size] = c; // 插入 c
delete[] arr; // 释放旧数组内存
arr = newArr; // 更新指针指向新数组
```
**相关问题--:**
1. 如何处理固定大小数组插入后超出范围的问题?
2. `std::vector`何时比固定大小数组更适用?
3. 插入操作对数组的时间复杂度有何影响?
阅读全文