📜  在 cpp 中动态生成二维数组 - C++ (1)

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

在 C++ 中动态生成二维数组

在 C++ 中,动态生成二维数组的方法很常见,特别是在需要处理大量数据的情况下非常有用。这篇文章将介绍两种常见的方法。

方法一:使用指针
int rows, cols; // 行数和列数

// 动态生成二维数组
int **arr = new int *[rows];
for (int i = 0; i < rows; ++i) {
    arr[i] = new int[cols];
}

// 释放内存
for (int i = 0; i < rows; ++i) {
    delete[] arr[i];
}
delete[] arr;

上述代码使用了指针来动态生成二维数组。首先创建一个指针 arr,然后用循环来动态分配 rows * cols 的内存。

注意:由于二维数组在内存中的实际存储方式为连续的一维数组,因此不能将二维数组声明为 int arr[rows][cols] 这种形式,否则无法动态分配内存。

方法二:使用 vector
int rows, cols; // 行数和列数

// 动态生成二维数组
vector<vector<int>> arr(rows, vector<int>(cols));

// 释放内存,不需要手动释放

上述代码使用了 STL 中的 vector 容器来动态生成二维数组。使用 vector 的好处是不需要手动释放内存,内存管理由 vector 自动完成。

总结

本文介绍了两种常见的方法来动态生成二维数组,分别是使用指针和使用 vector。根据具体的情况选择适合自己的方法即可。