📜  如何在 cpp 中创建大小不恒定的数组 - C++ (1)

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

如何在 C++ 中创建大小不恒定的数组

在 C++ 中,有时候我们需要创建一些大小不固定的数组,以便在程序运行时动态添加或删除元素。本文将介绍几种常见的方法,实现大小不恒定的数组。

方法一:使用指针和 new 操作符

使用指针和 new 操作符是一种简单有效的方法。具体步骤如下:

  1. 声明一个指针,指向需要创建的数组类型。

    int* arr;
    
  2. 使用 new 操作符为指针分配内存。

    arr = new int[n];
    

    其中,n 表示需要创建的数组大小。

  3. 使用指针操作数组元素。

    arr[0] = 1;
    arr[1] = 2;
    // ...
    
  4. 使用 delete 操作符释放内存。

    delete[] arr;
    

    注意,这里需要使用 delete[] 操作符,而不是 delete 操作符,以确保正确释放整个数组占用的内存。

方法二:使用 vector 容器

在 C++ 中,vector 是一个非常常见的容器,用于存储大小不固定的数组。使用 vector 的步骤如下:

  1. 引入 vector 头文件。

    #include <vector>
    
  2. 声明一个 vector 变量,指定元素类型。

    std::vector<int> arr;
    
  3. 使用 push_back 方法添加元素,使用 pop_back 方法删除元素。

    arr.push_back(1);
    arr.push_back(2);
    // ...
    arr.pop_back();
    
  4. 使用下标操作符访问数组元素。

    arr[0] = 1;
    arr[1] = 2;
    // ...
    

    注意,使用下标操作符访问 vector 中的元素时,需要确保下标不越界。

方法三:使用动态数组

如果你使用的是 C++11 或更新版本的编译器,那么你还可以使用动态数组(Dynamic Array)。使用动态数组的步骤如下:

  1. 引入头文件。

    #include <memory>
    
  2. 声明一个动态数组变量,指定元素类型和数组大小。

    std::unique_ptr<int[]> arr(new int[n]);
    

    其中,n 表示需要创建的数组大小。

  3. 使用数组操作符访问元素。

    arr[0] = 1;
    arr[1] = 2;
    // ...
    
  4. 程序结束时,动态数组会自动释放内存,无需手动释放。

    // 不需要使用 delete[]
    

    注意,使用动态数组时,必须使用 unique_ptr 包装指针,以确保正确释放内存。

总结

以上是三种常见的方法,实现在 C++ 中创建大小不恒定的数组。你可以根据自己的需求选择其中一种或多种方法。无论选择哪种方法,都需要注意内存泄漏的问题,及时释放不再使用的内存。