CodeStyle-sfiction

从 Trac 迁移的文章

这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。

原文章内容如下:

sfiction的代码风格,权作参考。

 1. 空格。
   * 不加空格
     * 括号
     * 单目运算符
     * 各类取成员运算符
   * 只在后面加空格
     * 逗号运算符
     * for语句中的分号
   * 两侧都加空格
     * 其他二目运算符
     * 条件运算符

 2. 变量名。除非是非常短的代码,否则变量名应尽量取得有意义。最好是3-5个字符。更长的变量名大概需要控制出现次数。
   * 常用短变量名
     * 循环控制: cas, casi, i, j, k, l
     * 树类结构: l, r, m
     * 临时变量: t
     * 图论相关: E, u, v, w
     * 计算几何:x, y, z, A, B, C
     * 动态规划: f
     * 队列: Q
   * 常用变量名
     * 循环控制: flag
     * 临时变量: temp
     * 二分: high, low, mid, key
     * 图论相关: dis(t), pre, nex, vis, mat
     * 递归调用: res, ret
     * 其他: sum, len, cnt, ans

 3. 需反复使用的常量使用#define或const,如MAXN和MAXM。格子题四连通和八连通的增量一般也用const。
 4. 一般多用字符数组而不是string。一些时间充裕、处理复杂的题目用string可以简化代码。
 5. if, for, while等语句的语句体中即使只有一个语句也加大括号。方便加入调试信息。有时候可能过于碍眼,自行斟酌。

'''以下各条请谨慎使用!'''

 1. 将多个简单语句缩为一个复杂语句。需要对运算符优先级、运算符副作用、表达式计算有一定了解。
 2. 为求简洁在优先级符合需求的情况下不写括号。需要对运算符优先级、运算符副作用、表达式计算有一定了解。
 3. 用for代替结构简单的while。

sfiction的代码风格,权作参考。

1. 空格。

  • 不加空格
    • 括号
    • 单目运算符
    • 各类取成员运算符
  • 只在后面加空格
    • 逗号运算符
    • for语句中的分号
  • 两侧都加空格
    • 其他二目运算符
    • 条件运算符

2. 变量名。除非是非常短的代码,否则变量名应尽量取得有意义。最好是3-5个字符。更长的变量名大概需要控制出现次数。

  • 常用短变量名
    • 循环控制: cas, casi, i, j, k, l
    • 树类结构: l, r, m
    • 临时变量: t
    • 图论相关: E, u, v, w
    • 计算几何:x, y, z, A, B, C
    • 动态规划: f
    • 队列: Q
  • 常用变量名
    • 循环控制: flag
    • 临时变量: temp
    • 二分: high, low, mid, key
    • 图论相关: dis(t), pre, nex, vis, mat
    • 递归调用: res, ret
    • 其他: sum, len, cnt, ans

3. 需反复使用的常量使用#define或const,如MAXN和MAXM。格子题四连通和八连通的增量一般也用const。

4. 一般多用字符数组而不是string。一些时间充裕、处理复杂的题目用string可以简化代码。

5. if, for, while等语句的语句体中即使只有一个语句也加大括号。方便加入调试信息。有时候可能过于碍眼,自行斟酌。

以下各条请谨慎使用!

1. 将多个简单语句缩为一个复杂语句。需要对运算符优先级、运算符副作用、表达式计算有一定了解。

2. 为求简洁在优先级符合需求的情况下不写括号。需要对运算符优先级、运算符副作用、表达式计算有一定了解。

3. 用for代替结构简单的while。