From 270aead8e2cca7e8895afb7a87daffdfaaa0e205 Mon Sep 17 00:00:00 2001 From: Haoshen Zhong <124694738@qq.com> Date: Sat, 10 Aug 2019 12:06:24 +0800 Subject: [PATCH] Update common-tricks.md --- docs/intro/common-tricks.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/docs/intro/common-tricks.md b/docs/intro/common-tricks.md index 0c64264c..0afcaea7 100644 --- a/docs/intro/common-tricks.md +++ b/docs/intro/common-tricks.md @@ -34,6 +34,35 @@ // 不如 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 -- 2.11.0