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)操作。