我在一些有竞争力的编程网站上练习,比如 UVa或 LOj并多次注意到(10 次或更多次!)在我的程序中放置了一个不必要的循环,例如,将其放在程序的开头-
for (int _delay = 0; _delay < 500000000; _delay++ );
让它比往常运行得更快(!),并给我更好的排名。我已经一遍又一遍地重新提交,但这种情况一直在发生。 我的问题是这怎么可能?只是巧合(发生了很多次)还是编译后的程序由于某种原因得到了优化?
最佳答案
我认为大多数编译器会忽略您提到的以下语句:
for (int _delay = 0; _delay < 500000000; _delay++ );
因为 for 循环除了修改作用域仅在 for 循环内的局部变量外什么都不做。
至于上面的说法让整个程序更快......我不认为它可以......
关于c++ - 为什么 C++ 不必要的循环使程序更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18280839/