Menu
CoddyTech

动态数组

Coddy C++ 指针 课程的第 13 课,共 14 课。

多亏了现代编程和高级编程语言,我们有了数据结构和算法,可以轻松地帮我们完成复杂的工作。我们有向量、栈、队列等。

具体来说,C++ 中的 vector 是一种表示动态数组的数据结构。你不需要初始化它的长度。使用 .push_back() 方法时,它的长度会自动改变,我们要添加的元素也会自动添加,等等。 

不过,在幕后,vector 会动态改变,而且所有方法和函数都是由其他人预先构建好的。不过,了解动态分配数组的工作原理还是很有好处的。

例如,假设我们有一个数组,我们可以使用 new 声明它并初始化它的长度,同时在内存中预留空间。之后,我们可以在内存中的这些位置填入想要的值。

// 为 5 个整数分配内存:
int *array = new int[5];
    
// 填充数组:
for(int i = 0; i < 5; i++)
        array[i] = i + 1;
// 输出数组元素
for(int i = 0; i < 5; i++)
    cout << array[i] << " ";
    
// 释放内存
delete[] array;
Output:
1 2 3 4 5

如你所见,我们在内存中为 5 个整数动态预留了空间,使用 for 循环填充这些内存位置,打印出它们,然后使用 delete[] 删除数组,以安全地释放内存并避免内存泄漏。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

challenge icon

挑战

简单

输入中会给出一个数字 N,表示数组的元素个数。使用指针动态创建一个名为 numbers 的数组,并为 N 个整数分配空间。在下一行输入中,会给出 N 个元素,请使用 for 循环逐个输入,最后打印出所有位于偶数位置的元素(起始索引为 0)。最后,释放一开始分配的内存。

输入
5
1 2 3 4 5

输出
1 3 5

亲手试试

#include <iostream>

using namespace std;

int main() {
    // 在这里编写代码
    return 0;
};

C++ 指针中的所有课

自己练习: C++ 在线编译器