嗨,我遇到了一个问题,我试图为多维数组的循环做一个范围,但我无法弄清楚要使用的类型。使用此代码,该程序可以正常运行,但是当我尝试选择我的类型而不是自动时,我会收到错误,我已经尝试过搜索问题,但却找不到任何问题。帮助将不胜感激!
int ia[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
for( auto &ref_ia : ia){
for(int &ref_ref : ref_ia){
cout << ref_ref << " ";
}
}
答案 0 :(得分:4)
元素类型是一个包含4个整数的数组,因此您需要引用4个整数的数组:
#include <initializer_list>
#include <iostream>
int main()
{
int ia[3][4] = { {1,2,3,4}, {5,6,7,8}, {9,10,11,12} };
for (int (&ref_ia)[4] : ia)
{
for(int &ref_ref : ref_ia)
{
std::cout << ref_ref << " ";
}
}
}
答案 1 :(得分:2)
希望以下代码能够让您了解auto
:
int main()
{
int ia[3][4] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
for (int (&ref_ia)[4] : ia){
for (int &ref_ref : ref_ia){
cout << ref_ref << " ";
}
}
return 0;
}
int (&ref_ia)[4]
是对四维数组或整数的引用。