fibs 是一个 std::vector。使用 g++,我被建议将 fibs.size() 带出循环,以节省每次计算它(因为 vector 可能会改变)
int sum = 0;
for(int i = 0; i < fibs.size(); ++i){
if(fibs[i] % 2 == 0){
sum += fibs[i];
}
}
当然,编译器中有一些数据流分析会告诉我们 fib 不会改变大小。在那儿?或者我应该将其他一些变量设置为 fibs.size() 并在循环条件中使用它吗?
最佳答案
编译器可能会确定它不会改变。即使是这样, vector 的 size()
也是一个 O(1) 操作。
关于c++ - 将 vector size() 带出循环条件进行优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6395532/