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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用范围for循环而不使用auto关键字c ++相关的知识,希望对你有一定的参考价值。

对于这个赋值,我应该使用一个范围来打印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'

答案

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

for(int (&a)[4] : ia)
    for(int b : a)

以上是关于使用范围for循环而不使用auto关键字c ++的主要内容,如果未能解决你的问题,请参考以下文章

Groovy循环控制 ( Java 语法循环 | 默认的 IntRange 构造函数 | 可设置翻转属性的 IntRange 构造函数 | 可设置是否包含 to 的构造函数 | 0..9 简写 )(代

(字符串的操作 for循环 和 while遍历循环)

使用 LLVM 链接器生成 C 代码

前端js的数组的循环遍历 for / for of / for in / arr.forEach()

在 C 中使用无效的指针值合法吗?

Python流程控制中的 for whilefrange循环和嵌套词汇continuebrec