我知道我们可以使用以下代码来打印数组中的元素,例如:
int a[] = {1,2,3,4,5};
for (int el : a) {
cout << el << endl;
但是,如果我们的数组具有两个或多个维度,该怎么办? 如何修改for循环以打印更高维的数组? 例如:
int b[2][3] = {{1,2},{3,4,5}};
谢谢:)
答案 0 :(得分:2)
怎么样:
int b[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } };
for (auto& outer : b)
{
for (auto& inner : outer)
{
std::cout << inner << std::endl;
}
}
答案 1 :(得分:1)
基于范围的 for 循环: 下面的简单示例展示了如何使用基于范围的 for 循环打印二维数组。
unsigned int arr[2][3] = { {1,2,3}, {4,5,6} }; // 2 rows, 3 columns
for (const auto& row: arr) // & - copy by reference; const - protect overwrite;
{
for (const auto& col : row)
{
std::cout << col << " "; // 1 2 3 4 5 6
}
}
类似地,二维向量的基于范围的循环:
vector<vector<int>> matrix { {1,2,3}, {4,5,6} }; // 2 rows, 3 columns
for (const auto& row : matrix) // & - copy by reference; const - protect overwrite;
{
for (const auto& col : row)
{
std::cout << col << " "; // 1 2 3 4 5 6
}
}