自认为码风就像代码的脸,无论是调试还是写题解都极其重要
下面是我的码风,莫喷
空格 & tab
松散胜于紧凑
- tab宽度4
- 运算符前后加空格
,
后加空格- 嫌挤的地方加空格
- 大括号不换行(少说这个,引起战争)
大概一个 a+b 写成这样:
1 |
|
代码块分布
意思相近的语句、函数写到一块
大块数据结构包装起来
各个代码块间加空行(我乱加空行的怪癖改不掉)
顺序嘛:
1 | // 头文件 |
当然我喜欢总体套一个 namespace ,看这里
压行
曾经我是痛恨压行的,如今自己成为了曾经讨厌的人。。。
代码还是简洁的好
不过自认为压行并不是凑到一块那么简单
我曾见过这样的压行
1 | inline bool bfs(){ |
不是我想针对谁,这样压行太拙劣了
压行要有原则和规范
一行内尽量不出现多个
;
{
后不要写东西,}
另起一行(大括号一般使用时)不好理解或过于复杂的代码不压行
熟练运用 C++ 语言特性来缩减语句
for/while
等里面只有一句时不加大括号- 用
,
连接较短语句,作为一句(有时候还能少个大括号呢)
1
2for (int i = 1, u, v; i <= n; ++i)
read(u), read(v), add(u, v);- 多用三目运算符代替简单的
if/else
判断
1
2get(fa) == get(x) ? rotate(fa) : rotate(x);
(tag ? a1 : a2)[i] = x;// 雾- 多使用结构体的整体赋值
1
e[++cnt] = (Edge){head[u], v};
- 运用
&&
||
的短路特性 - 部分
()
[]
中嵌套一些简单赋值
1
2
3for (int i = head[u], v; i; i = e[i].nxt)
if ((v = e[i].to) != fa)
...
显然我的压行优越得多
总之敲代码要心情愉悦~
最后附上我美轮美奂的 vscode
update 2020.1.18
有人说“美轮美奂”不应该在这用,好吧我语文不好,
只好说把我的VSCODE比喻为华丽的建筑
欢迎交流互鉴
平写题解都没见你bb这么多