循环两个范围的更好方法是 - 将它们相乘并一次循环,或者分别在每个范围上循环?

bod*_*ydo 1 c c++ loops

我无法决定如何循环范围.这条路:

for (int i = 0; i < max_i; i++) {
    for (int j = 0; j < max_j; j++) {
        // first way - two loops
    }
}
Run Code Online (Sandbox Code Playgroud)

或者这样:

for (int k = 0; k < max_i*max_j; k++) {
    // second way - one loop
}
Run Code Online (Sandbox Code Playgroud)

谢谢,Boda Cydo.

mae*_*ics 7

这取决于你将对指数做什么.如果您分别使用两个值(例如,您正在迭代两个循环中的值的所有排列),则两个循环解决方案更加清晰.如果你不关心个人价值而只关心他们的产品,那么单循环策略会更好.

无论哪种方式,选择更清楚地表达您的意图的策略.与维护代码的简单性的重要性相比,性能影响是微不足道的.