我不确定如何构建标题,但解释更简单.我正在使用c ++ 11 range for loops(链接).
我写了以下内容:
for(auto &elem:vec){ elem/=vec[0]; }
哪个编译但不会改变向量'vec'中的任何内容.
另一方面,这有效:
elem0 = vec[0]; for(auto &elem:vec){ elem/=elem0; }
这是预期的吗?第一种方法有什么问题?如果有帮助,我的编译器版本是g ++ 4.6.3.