对于这个作业,我应该使用一个范围来打印出 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: 错误:无法将右值“(int)((int*)__for_begin)”绑定(bind)到“int&”
..\src\Sec_3_5_3.cpp:128:15: 错误:“开始”未在此范围内声明
..\src\Sec_3_5_3.cpp:128:15: 错误:'end' 未在此范围内声明
最佳答案
每个ia[i]
不是一个int
,而是一个包含4个int
的数组。
为了能够保持尺寸,您必须使用引用:
for(int (&a)[4] : ia)
for(int b : a)
关于c++ - 使用范围 for 循环而不使用 auto 关键字 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48029357/