gpt4 book ai didi

foreach - c++0x 为什么基于范围的 for 循环中的 "auto"变量作为值而不是引用传递到循环体?

转载 作者:行者123 更新时间:2023-12-02 12:09:51 25 4
gpt4 key购买 nike

我遇到了一个 bug,这让我想知道为什么要这样设计。我觉得 auto some:container 最好生成引用,而不是值。例如:

int t[3]{11,22,33};
for(int& el:t2)
el*=2;

给出 22,44,66

int t[3]{11,22,33};
for(auto el:t2)
el*=2;

“什么也不做”。

最佳答案

auto 在您描述的情况下推断出类型为 int。如果您想将其转换为引用,可以使用 auto&

如果 C++ 编译器仅仅因为处于 for 循环中就使用特殊规则,那么这些规则将非常困惑。

auto i = t[1];

相同
int i = t[1];

这里的情况相同,如果您想要引用,则必须指定您想要引用。

关于foreach - c++0x 为什么基于范围的 for 循环中的 "auto"变量作为值而不是引用传递到循环体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6447869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com