C ++中的for-each-loop用于二维数组

时间:2018-07-07 13:08:50

标签: c++ arrays for-loop syntax

我知道我们可以使用以下代码来打印数组中的元素,例如:

int a[] = {1,2,3,4,5};
for (int el : a) {
cout << el << endl;

但是,如果我们的数组具有两个或多个维度,该怎么办? 如何修改for循环以打印更高维的数组? 例如:

int b[2][3] = {{1,2},{3,4,5}};

谢谢:)

2 个答案:

答案 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
    }
}