动态数组:插入
Coddy C++ 指针 课程的第 14 课,共 14 课。
最后,了解如何动态地向数组中添加元素也很重要。如果你无法使用 vector,而且数组已经满了,就需要找到一种方法来动态调整数组的长度并添加所需的元素。
下面是一个小示例,展示了如何动态更改数组,让它像 vector 一样工作。
- 我们有一个初始的动态分配数组。
- 我们创建一个长度增加 1 的新动态分配数组。
- 我们把旧数组中的所有元素复制到新数组中。
- 在最后一个索引(增加的 +1 位置)处添加所需的元素。
- 我们删除旧数组。
- 然后让指向已删除旧数组的指针指向新的修改后数组。
- 最后,在程序末尾,再次删除数组指针。
int *array = new int[5]; // 初始数组
for(int i = 0; i < 5; i++)
array[i] = i + 1;
int *newarray = new int[6]; // 长度增加 1 的新数组
for(int i = 0; i < 5; i++)
newarray[i] = array[i]; // 复制所有元素
newarray[5] = 6; // 添加最后一个元素
delete[] array; // 释放旧数组的内存
array = newarray; // 让它指向新数组
for(int i = 0; i < 5; i++)
cout << array[i] << " ";
delete[] array; // 释放新数组的内存这节课包含一个小测验。开始学习即可作答,并记录你的进度。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
挑战
简单给定动态分配的数组,不要更改默认代码,在中间添加代码,输入 3 个数字并将它们添加到数组末尾,就像本课中的示例一样。
不要更改默认代码
亲手试试
#include <iostream>
using namespace std;
int main() {
int *numbers = new int[5];
for(int i = 0; i < 5; i++)
numbers[i] = i + 1;
// 不要修改上面的代码
// 在这里编写你的代码
// 输入 3 个整数
// 将它们动态添加到数组 "numbers" 中
// 不要修改下面的代码
for(int i = 0; i < 8; i++)
cout << numbers[i] << " ";
delete[] numbers;
return 0;
}C++ 指针中的所有课
自己练习: C++ 在线编译器