c++ - 将 vector size() 带出循环条件进行优化

标签 c++

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/

相关文章:

c++ - 模板别名可以用于部分特化吗?

C++ 屏幕截图 - 如何读取位图?

c++ - `if constexpr`可以用来声明不同类型和init-expr的变量吗

c++ - float 不等式是否保证一致

c++ - 是否可以尝试在静态库中捕获断言调用(C++)

c++ - 如何循环继承自 boost::any 中包含的 std::vector 的类

c++ - 如何在 C++ 中设计 16,32, 64 字节甚至更大的 INT

java - 哪些库可用于分析口语关键字和/或语音到文本的音频文件?

c++ - 如何在 OpenCV SVM 中获取分离超平面?

c++ - C++网络IO,文件处理和网络故障