使用范围for循环而不使用auto关键字c ++

问题描述 投票:0回答:1

对于这个赋值,我应该使用一个范围来打印ia中的元素而不使用auto关键字。基本上,该任务试图帮助我们理解多维数组。我知道代码中发生了什么,但我一直遇到一些错误。语法有问题,我无法弄明白。

int ia[3][4] = {{0,1,2,3},{4,5,6,7},{8,9,10,11}};

cout << endl;
for(int &a : ia)
    for(int b : a)
        cout << b << endl;

我一直收到这些错误:

.. \ src \ Sec_3_5_3.cpp:127:15:错误:无效转换为'int *'到'int'[-fpermissive] for(int&a:ia)

.. \ src \ Sec_3_5_3.cpp:127:15:错误:无法将rvalue'(int)((int *)__ for_begin)'绑定到'int&'

.. \ src \ Sec_3_5_3.cpp:128:15:错误:未在此范围内声明'begin'

.. \ src \ Sec_3_5_3.cpp:128:15:错误:在此范围内未声明'end'

c++ arrays for-loop range iteration
1个回答
2
投票

每个ia[i]不是int,而是4个ints阵列。 为了能够保持大小,你必须使用一个参考:

for(int (&a)[4] : ia)
    for(int b : a)
© www.soinside.com 2019 - 2024. All rights reserved.