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

09-09 19:33