21xrx.com
2024-11-22 07:21:46 Friday
登录
文章检索 我的文章 写文章
C++类中如何定义二维数组
2023-07-14 18:06:15 深夜i     --     --
C++ 定义 二维数组

在C++中,可以使用类来定义二维数组。定义二维数组可以让我们轻松地处理多维数据,例如矩阵、图像、游戏地图、等等。

下面是一个简单的例子,展示了如何使用类来定义二维数组:


class Matrix {

 public:

  int rows, cols;

  int **data; // 二维数组指针

  Matrix(int rows, int cols) {

   this->rows = rows;

   this->cols = cols;

   data = new int*[rows]; // 分配行

   for(int i = 0; i < rows; ++i)

    data[i] = new int[cols]; // 分配列

  }

  // 析构函数,释放内存

  ~Matrix() {

   for(int i = 0; i < rows; ++i)

    delete[] data[i]; // 释放列内存

   delete[] data; // 释放行内存

  }

};

// 使用

int main() {

 int rows = 3, cols = 4;

 Matrix mat(rows, cols);

 // 赋值

 for(int i = 0; i < rows; ++i)

  for(int j = 0; j < cols; ++j)

   mat.data[i][j] = i * cols + j;

 // 打印

 for(int i = 0; i < rows; ++i) {

  for(int j = 0; j < cols; ++j)

   cout << mat.data[i][j] << " ";

  cout << endl;

 }

}

在上面的例子中,我们创建了一个名为Matrix的类来表示二维数组。该类有rows和cols属性表示行和列数,以及一个指向二维数组的指针data。

在Matrix类的构造函数中,我们分配了rows * cols大小的内存。我们首先使用new操作符分配一组指向行的指针,然后使用for循环为每个行指针分配所需的列内存。

在Matrix类的析构函数中,我们使用delete操作符释放从构造函数中分配的内存。我们首先释放每个行指针所指向的列内存,然后释放指向行的指针的内存。

在主函数中,我们使用Matrix类创建了一个名为mat的对象。然后使用两个嵌套的循环来赋值和打印mat中的值。

通过使用类来定义二维数组,我们可以将二维数组的处理转换为对象的处理,从而使代码更加清晰和易于管理。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复