📜  如何在C++中的类内创建动态2D数组?(1)

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

如何在C++中的类内创建动态2D数组?

在C++中,我们可以使用指针来创建动态二维数组。一个二维数组可以看作是一个由若干个一维数组组成的数组。因此,在创建二维数组之前,我们需要先创建一维数组。

创建一维数组

我们可以使用以下代码来创建一个一维数组:

int* arr = new int[size];

其中,size 是数组的长度,arr 是指向数组的指针。这段代码将 size 个 int 类型的内存空间分配给 arr 指向的数组。

创建二维数组

对于二维数组,我们可以看作是一个由第一维数组及其元素组成的数组。我们可以使用以下代码来创建二维数组:

int** arr = new int*[row];
for(int i = 0; i < row; ++i)
    arr[i] = new int[col];

其中,row 是二维数组的行数,col 是二维数组的列数,arr 是指向二维数组的指针。这段代码将会创建一个 rowcol 列的二维数组。

该段代码中,第一条语句将会创建一个指向一维数组的指针数组,其长度为 row。第二条语句中,由于 arr[i] 是一个一维数组的指针,因此我们需要再次使用 new 关键字动态分配大小为 col 的 int 数组,将其赋值给 arr[i]

初始化二维数组

我们可以使用以下代码初始化一个二维数组:

int** arr = new int*[row];
for(int i = 0; i < row; ++i)
{
    arr[i] = new int[col];
    for(int j = 0; j < col; ++j)
        arr[i][j] = val;
}

其中,row 是二维数组的行数,col 是二维数组的列数,arr 是指向二维数组的指针,val 是二维数组中每个元素的初始值。该段代码会将二维数组的每个元素都赋值为 val

需要注意的是,在使用完二维数组后,我们需要使用 delete[] 释放其所占用的内存空间:

for(int i = 0; i < row; ++i)
    delete[] arr[i];
delete[] arr;

以上就是在 C++ 中如何创建动态二维数组的介绍。