【发布时间】:2013-05-17 11:32:25
【问题描述】:
通常,我会编写这样的代码。
auto elements = get_elements();
for(auto i : elements)
{
// ...
}
我想知道使用下面的代码是否会产生任何性能差异。 get_elements() 每次迭代都会被调用还是只调用一次?
for(auto i : get_elements())
{
// ...
}
此外,传统的 for 循环怎么样?如果我不修改循环遍历的元素,编译器是否会优化该代码以不调用get_elements() 每次迭代?
for(auto i = get_elements().begin(); i != get_elements().end(); ++i)
{
// ...
}
【问题讨论】:
标签: c++ performance loops call iteration