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

标签 c++ arrays for-loop range iteration

对于这个作业,我应该使用一个范围来打印出 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/

相关文章:

c++ - 好的在线 C++ 语法引用?

c++ - 在 VS2012 中使用 C++11 条件变量

javascript - php多维数组到javascript无法通过循环访问

java - 如何使用数组用 fillPolygon 替换字符串中的字符

java - 表达式的类型必须是数组类型,但它解析为 ArrayList(试图比较两个数组中的字符串

javascript - 如何减少这段 JS 代码的行数,使其更短、更高效?

c++ - 计算字符串中元音的函数

c++ - 将结构传递给函数并在其中输入数据

c# - 如何将数组内容与其索引值连接起来

php - PHP 中使用 foreach 和 for 循环的问题