OSDN Git Service

Update common-tricks.md
authorHaoshen Zhong <124694738@qq.com>
Sat, 10 Aug 2019 04:06:24 +0000 (12:06 +0800)
committerGitHub <noreply@github.com>
Sat, 10 Aug 2019 04:06:24 +0000 (12:06 +0800)
docs/intro/common-tricks.md

index 0c64264..0afcaea 100644 (file)
     // 不如
     for (int i = 0; i < n; ++i) res = res OP(a[i] OP a[i + 1]);
     ```
+    
+## 循环宏定义
+
+我们写代码时,像下面这样的循环代码写得会非常多:
+
+```cpp
+for(int i = 0; i < N; i++) {}
+```
+
+为了简化这样的循环代码,我们可以使用宏定义:
+
+```cpp
+#define _for(i, a, b) for(int i = (a); i < (b); ++i)
+```
+
+这样写循环代码时,就可以简化成 `_for(i, 0, N)`。例如:
+
+```cpp
+vector b;
+_for(i, 1, a.size()) {...}
+```
+
+另外推荐一个比较有用的宏定义:
+
+```cpp
+#define _rep(i, a, b) for(int i=(a); i <= (b); ++i)
+```
+
+> 注:参考《算法竞赛入门经典 习题与解答》
 
 ## 善用 namespace