gpt4 book ai didi

c++ - 在 C++ 中,在 for 循环之外使用 "if"还是在 for 循环中使用 "if"效率更高

转载 作者:太空狗 更新时间:2023-10-29 23:50:32 25 4
gpt4 key购买 nike

我正在用 C++ 编写程序,我正在考虑是否将“if”放入循环中。我会想象做一次检查然后循环整体上比不断循环和检查更有效,但我不太确定。或者这些都无关紧要,因为编译器无论如何都会对其进行优化?

这样效率更高吗?

for(int i = 0; i < SOME_BOUND; i++){
if(SOME_CONDITION){
//Some actions
}
else {
//Some actions
}

}

还是这样更有效率?

if(SOME_CONDITION){
for(int i = 0; i < SOME_BOUND; i++){
//Some Actions
}
}
else {
for(int i = 0; i < SOME_BOUND; i++){
//Some Actions
}
}

最佳答案

一次检查肯定更好,但是硬件(分支预测)和编译器(在循环外提升表达式和条件)的特性使得很难预测这两个部分之间是否真的存在运行时差异源代码。

通常,您应该关注正确性和可维护性,并且只有在性能分析显示优化器在性能上遗漏时才复制循环。

关于c++ - 在 C++ 中,在 for 循环之外使用 "if"还是在 for 循环中使用 "if"效率更高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29574054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com