📜  调整动态数组大小 c++ (1)

📅  最后修改于: 2023-12-03 15:41:47.811000             🧑  作者: Mango

调整动态数组大小 (C++)

动态数组(Dynamic array)是一种可以在运行时调整大小的数组,大小可以根据需求进行增减,通常用于存储不定量的数据。C++中可以通过类似于指针的方式来实现动态数组。

动态数组的创建与删除

在C++中,动态数组的创建可以使用关键字new和delete,具体步骤如下:

int* arr1 = new int[10]; // 创建一个包含10个整数的动态数组
float* arr2 = new float[20]; // 创建一个包含20个浮点数的动态数组
delete[] arr1; // 删除arr1数组
delete[] arr2; // 删除arr2数组

在使用new创建动态数组时,需要在数据类型后跟上一对方括号,并在括号中指定数组的大小。在使用delete删除动态数组时,需要在数组变量前加上一对方括号。

动态数组大小的调整

动态数组的大小可以在运行时进行调整。C++中可以使用关键字new和delete重新分配内存来实现数组大小的调整。对于动态数组arr,其大小调整的一般流程如下:

  1. 创建一个新的动态数组new_arr并分配所需的内存。
  2. 将原始的数组arr中的元素复制到新数组new_arr中。
  3. 删除原始的数组arr,将数组指针指向新数组new_arr。

以下代码片段展示了如何调整一个动态数组的大小:

int* arr = new int[10]; // 创建一个包含10个元素的数组
// 此处省略对arr数组的初始化操作
int* new_arr = new int[20]; // 创建一个包含20个元素的数组
// 将arr原始数组的前10个元素复制到new_arr数组中
for(int i = 0; i < 10; i++) {
    new_arr[i] = arr[i];
}
// 删除arr数组,并将数组指针arr指向new_arr数组
delete[] arr;
arr = new_arr;
注意事项
  • 在使用delete删除动态数组时,需要在数组变量前加上一对方括号,以释放整个数组占据的内存。
  • 在动态数组大小调整时,需要重新分配所需的内存空间,并将原始数组的数据复制到新数组中。此过程较为耗时,应尽量避免频繁地进行大小调整。
  • 动态数组的大小可以自由调整,但空间不是无限的,过度频繁地调整大小可能会导致内存不足的问题。
结语

本文介绍了C++中动态数组的创建与删除、动态数组大小的调整等基本操作。对于程序员而言,了解动态数组对于更好地掌握动态内存管理是非常有帮助的。