【发布时间】:2010-09-15 01:31:17
【问题描述】:
在下面的示例中,我是否应该期望每次循环都会调用values.size()?在这种情况下,引入一个临时的vectorSize 变量可能是有意义的。或者现代编译器是否应该能够通过识别向量大小不能改变来优化调用。
double sumVector(const std::vector<double>& values) {
double sum = 0.0;
for (size_t ii = 0; ii < values.size(); ++ii) {
sum += values.at(ii);
}
}
请注意,我不在乎是否有更有效的方法来对向量的内容求和,这个问题只是关于在 for 构造中使用 size()。
【问题讨论】:
-
这并不重要,但请更正您的示例代码并将“h”重命名为“sum”...
-
通过 const 值传递参数很少有用。您最好通过 const 引用传递它。有关详细信息,请参阅 GoTW#81 (gotw.ca/gotw/081.htm)。
标签: c++