c++ 11基于范围的for循环条件是否在每个循环中都被求值?
Does a C++11 range-based for loop condition get evaluated every cycle?
for(auto& entity : memoryManager.getItems()) entity->update(mFrameTime);
如果memoryManager包含1000项,memoryManager.getItems()
在循环开始时被调用1000次还是只调用一次?
编译器运行任何优化与-O2(或-O3)?
(memoryManager.getItems()
返回一个std::vector<Entity*>&
)
只计算一次。标准将基于范围的for
语句定义为:
{
auto && __range = range-init;
for ( auto __begin = begin-expr, __end = end-expr; __begin != __end; ++__begin ) {
for-range-declaration = *__begin;
statement
}
}
其中range-init
是:
相关文章:
- 使用 for 循环是否比在 C++ 中将内容保存在向量中更快?
- For 循环是否总是至少执行一次?
- 在不再满足条件后,while 循环是否停止验证?
- 使用 openMP simd 进行以下循环是否安全?
- while 循环是否在设置标志的情况下运行多次?
- 循环是否需要运行时间C++?
- 放置多个条件时,循环是否存在限制
- 在固定大小的数组上展开C++循环是否有益?
- 这个循环是否将int隐式转换为size_t
- r语言 - 在C++中使用 RCPP 的 NumericMatrix 循环是否是一个好的理想?
- 这无休止地循环是否有明显的原因
- 基于范围的 for 循环是否有利于性能
- 基于范围的 for 循环是否可以采用类型参数
- 在 C 和 C++ 中,for 循环是否可以将双精度值作为索引
- 基于范围的 for 循环是否缓存容器表达式,或每次迭代重新计算它
- 在Qt中,当事件循环线程拥有的QObject上的插槽正在执行时,QThread的事件循环是否会阻塞?
- 在vector上迭代时使用return语句退出循环是否安全?
- 在try-catch块中包装循环是否会导致性能问题?
- 分配器构造循环是否等于 std::uninitialized_copy
- 基于范围的'for'循环是否弃用了许多简单的算法?