AK-*_*CHP 3 c++ arrays foreach multidimensional-array
编译以下 cpp 代码时出现错误:
int x[][2]{{1, 2}, {3, 4}};
for (int e[2] : x) {
std::cout << e[0] << ' ' << e[1] << '\n';
}
Run Code Online (Sandbox Code Playgroud)
这会产生以下错误:
error: array must be initialized with a brace-enclosed initializer
我确实替换了int e[2]并且auto e有效,但我想使用实际类型。
有什么解决方法吗?
正确的固定大小声明是
for (int(&e)[2] : x) {}
Run Code Online (Sandbox Code Playgroud)
或者你可以用auto&它来推断
for (auto& e : x) {} // same as above
Run Code Online (Sandbox Code Playgroud)
注意:auto不会推导出相同类型
for (auto e : x) {} // e is int*
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |