基于变量的for循环方向

rou*_*urn 1 c++

我有几个很大的for循环,我想分成函数来减少代码重复.

它们之间的唯一区别是循环的第一行.

一个是:

for (int j = 50; j < average_diff; j++) {
Run Code Online (Sandbox Code Playgroud)

另一个是:

for (int j = upper_limit; j > lower_limit; j--) {
Run Code Online (Sandbox Code Playgroud)

我有一个整数,tb表示我想使用哪一个(它的值分别为1或2).

我想知道如何才能做到最好.这是宏的一个很好的用例吗?

unw*_*ind 6

不,对于宏来说听起来不是一个好例子.

最好的(大多数C++ - ish)事情可能是使用范围,并将其传递给函数.


Luc*_*ore 6

不要包装for,只需将内容包装在函数中:

for (int j = 50; j < average_diff; j++) {
   process(j);
}

for (int j = upper_limit; j > lower_limit; j--) {
   process(j);
}
Run Code Online (Sandbox Code Playgroud)