📅  最后修改于: 2023-12-03 15:23:07.946000             🧑  作者: Mango
在 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]
这种形式,否则无法动态分配内存。
int rows, cols; // 行数和列数
// 动态生成二维数组
vector<vector<int>> arr(rows, vector<int>(cols));
// 释放内存,不需要手动释放
上述代码使用了 STL 中的 vector 容器来动态生成二维数组。使用 vector 的好处是不需要手动释放内存,内存管理由 vector 自动完成。
本文介绍了两种常见的方法来动态生成二维数组,分别是使用指针和使用 vector。根据具体的情况选择适合自己的方法即可。