0

这个 for 循环宏在竞争性编程中经常使用:

#define REP(i, a, b) \
for (int i = int(a); i <= int(b); i++) 

现在我们使用它如下:

REP(i, a, b)
   statement;

但是,如果我想使用这样的多个语句怎么办?

REP(i, a, b)
   statement1;
   statement2;

这两个语句都在循环内。我该如何做到这一点?

4

2 回答 2

5
REP(i, a, b)
{
   statement1;
   statement2;
}

如果这真的是你想要的。但请记住,这将使您的代码更难被除您之外的任何人阅读。特别是考虑到(i=0; i < n; i++)(i=0; i <= n; i++). 如果您的主要目标是避免每次都自己编写这个冗长的结构,我会在您最喜欢的代码编辑器中查看代码片段。

于 2013-09-21T11:50:36.880 回答
0

for(int i = a; i <= b; i++)
{
   statement1;
   statement2;
}

绝对没有理由在这里使用宏——它只是隐藏了代码的作用,并且可能会破坏一些东西(例如 和 的值a并不b真正适合 an int,但这种情况使它们“适合”。

于 2013-09-21T11:53:03.153 回答