在C++中,打印输出二维数组的方法取决于你如何定义这个二维数组。下面我将介绍几种常见的定义方式以及它们的打印方法。
1. 使用静态数组
如果你知道数组的大小,并且这个大小在编译时是固定的,你可以使用静态数组。
#include <iostream>
using namespace std;
int main() {
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 4; ++j) {
cout << arr[i][j] << " ";
}
cout << endl;
}
return 0;
}
2. 使用动态数组
如果数组的大小在运行时才确定,你可以使用动态数组。
#include <iostream>
using namespace std;
int main() {
int rows = 3;
int cols = 4;
int** arr = new int*[rows];
for (int i = 0; i < rows; ++i) {
arr[i] = new int[cols];
}
// 填充数组
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
arr[i][j] = i * cols + j + 1;
}
}
// 打印数组
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
cout << arr[i][j] << " ";
}
cout << endl;
}
// 释放内存
for (int i = 0; i < rows; ++i) {
delete[] arr[i];
}
delete[] arr;
return 0;
}
3. 使用std::vector
std::vector
是C++标准库中的一个非常灵活的容器,可以用来创建动态大小的二维数组。
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<vector<int>> arr = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
for (const auto& row : arr) {
for (int val : row) {
cout << val << " ";
}
cout << endl;
}
return 0;
}
4. 使用C++11范围基于循环的其他方法
对于静态数组和std::vector
,你还可以使用C++11引入的范围基于循环来简化代码。
#include <iostream>
using namespace std;
int main() {
int arr[3][4] = {
{1, 2, 3,