我有一个这样的错误,它让我想知道为什么它是这样设计的.我觉得自动的东西会更好:容器会产生引用,而不是值.例如:
int t[3]{11,22,33};
for(int& el:t2)
el*=2;
Run Code Online (Sandbox Code Playgroud)
得到22,44,66
int t[3]{11,22,33};
for(auto el:t2)
el*=2;
Run Code Online (Sandbox Code Playgroud)
"什么也没做".
X-I*_*nce 11
auto在你描述的情况下推断出类型是int.如果您想将其转换为参考,您可以使用auto&.
如果C++编译器只使用特殊规则,因为它处于for循环中,则规则会非常混乱.
auto i = t[1];
Run Code Online (Sandbox Code Playgroud)
是相同的
int i = t[1];
Run Code Online (Sandbox Code Playgroud)
这里的情况相同,如果你想要一个引用,你必须指定你想要一个引用.
| 归档时间: |
|
| 查看次数: |
537 次 |
| 最近记录: |