使用范围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个int
s阵列。
为了能够保持大小,你必须使用一个参考:
for(int (&a)[4] : ia)
for(int b : a)
以上是关于使用范围for循环而不使用auto关键字c ++的主要内容,如果未能解决你的问题,请参考以下文章
Groovy循环控制 ( Java 语法循环 | 默认的 IntRange 构造函数 | 可设置翻转属性的 IntRange 构造函数 | 可设置是否包含 to 的构造函数 | 0..9 简写 )(代