C ++ for 2d数组上的循环

时间:2017-12-17 00:35:58

标签: c++ arrays 2d

这是我的二维阵列:

int pay_scale[15][10] = 
{ { 18526, 19146, 19762, 20375, 20991, 21351, 21960, 22575, 22599, 23171},
{ 20829, 21325, 22015, 22599, 22853, 23525, 24197, 24869, 25541, 26213 },
{ 22727, 23485, 24243, 25001, 25759, 26517, 27275, 28033, 28791, 29549},
{ 25514, 26364, 27214, 28064, 28914, 29764, 30614, 31464, 32314, 33164},
{ 28545, 29497, 30449, 31401, 32353, 33305, 34257, 35209, 36161, 37113},
{ 31819, 32880, 33941, 35002, 36063, 37124, 38185, 39246, 40307, 41368},
{ 35359, 36538, 37717, 38896, 40075, 41254, 42433, 43612, 44791, 45970},
{ 39159, 40464, 41769, 43074, 44379, 45684, 46989, 48294, 49599, 50904},
{ 43251, 44693, 46135, 47577, 49019, 50461, 51903, 53345, 54787, 56229},
{ 47630, 49218, 50806, 52394, 53982, 55570, 57158, 58746, 60334, 61922},
{ 52329, 54073, 55817, 57561, 59305, 61049, 62793, 64537, 66281, 68025},
{ 62722, 64813, 66904, 68995, 71086, 73177, 75268, 77359, 79450, 81541},
{ 74584, 77070, 79556, 82042, 84528, 87014, 89500, 91986, 94472, 96958},
{ 88136, 91074, 94012, 96950, 99888, 102826, 105764, 108702,11640,114578},
{ 103672, 107128, 110584, 114040, 117496, 120952, 124408,127864, 1, 2}};

我的目标是以与上面显示的顺序相同的顺序对std :: cout进行打印,以便在第一个数组中输出每个值pay_scale [0] [n ++] 然后进入pay_scale [1] [[n ++] 然后转到pay_scale [2] [n ++]等,直到达到pay_scale [14]

截至目前我只有:

for (int i = 0; i < 10; i++) {
     std::cout << "[" << pay_scale[n][i] << "]" << "\t";
}

并且n = 0 我在索引它时遇到了麻烦,没有它在完成第一个数组之前跳转到下一个数组。

我必须说我是cpp的新手,因为我相信你可以看到,任何指导都值得赞赏。 谢谢!

2 个答案:

答案 0 :(得分:2)

这是酷孩子们这样做的方式。 : - )

for (const auto &row : pay_scale) {
    for (auto col : row) {
        std::cout << col << " ";
    }
    std::cout << "\n";
}

答案 1 :(得分:0)

为什么不使用更像这样的东西来循环遍历所有数组:

for(int i = 0; i<15; i++)
{
    for(int n = 0; n<10; n++) cout<< "["<< pay_scale[i][n]<<"]\t";
    cout<<endl;
}

希望这会有所帮助。