📅  最后修改于: 2023-12-03 15:38:14.409000             🧑  作者: Mango
在 C++ 中,有时候我们需要创建一些大小不固定的数组,以便在程序运行时动态添加或删除元素。本文将介绍几种常见的方法,实现大小不恒定的数组。
使用指针和 new 操作符是一种简单有效的方法。具体步骤如下:
声明一个指针,指向需要创建的数组类型。
int* arr;
使用 new 操作符为指针分配内存。
arr = new int[n];
其中,n 表示需要创建的数组大小。
使用指针操作数组元素。
arr[0] = 1;
arr[1] = 2;
// ...
使用 delete 操作符释放内存。
delete[] arr;
注意,这里需要使用 delete[] 操作符,而不是 delete 操作符,以确保正确释放整个数组占用的内存。
在 C++ 中,vector 是一个非常常见的容器,用于存储大小不固定的数组。使用 vector 的步骤如下:
引入 vector 头文件。
#include <vector>
声明一个 vector 变量,指定元素类型。
std::vector<int> arr;
使用 push_back 方法添加元素,使用 pop_back 方法删除元素。
arr.push_back(1);
arr.push_back(2);
// ...
arr.pop_back();
使用下标操作符访问数组元素。
arr[0] = 1;
arr[1] = 2;
// ...
注意,使用下标操作符访问 vector 中的元素时,需要确保下标不越界。
如果你使用的是 C++11 或更新版本的编译器,那么你还可以使用动态数组(Dynamic Array)。使用动态数组的步骤如下:
引入头文件。
#include <memory>
声明一个动态数组变量,指定元素类型和数组大小。
std::unique_ptr<int[]> arr(new int[n]);
其中,n 表示需要创建的数组大小。
使用数组操作符访问元素。
arr[0] = 1;
arr[1] = 2;
// ...
程序结束时,动态数组会自动释放内存,无需手动释放。
// 不需要使用 delete[]
注意,使用动态数组时,必须使用 unique_ptr 包装指针,以确保正确释放内存。
以上是三种常见的方法,实现在 C++ 中创建大小不恒定的数组。你可以根据自己的需求选择其中一种或多种方法。无论选择哪种方法,都需要注意内存泄漏的问题,及时释放不再使用的内存。