​ 想要拷贝元素:for(auto x:range)

​ 想要修改元素 : for(auto &x:range)

​ 想要只读元素:for(const auto& x:range)

auto
​ auto即 for(auto x:range) 这样会拷贝一份range元素,而不会改变range中元素;

其修改不会影响a中的对应元素.由于每个循环都会创建一个拷贝,因此会带来系统开销。

auto&
​ 当需要修改range中元素,用for(auto& x:range)

const auto&
​ 当只想读取range中元素时,使用const auto&,如:for(const auto&x:range),它不会进行拷贝,也不会修改range, 可提高效率

const auto
​ 当需要拷贝元素,但不可修改拷贝出来的值时,使用 for(const auto x:range),避免拷贝开销
————————————————
版权声明:本文为CSDN博主「群山QunShine」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yiti8689/article/details/108277295