写在前面
个人认为,好的命名习惯可以让自己的代码更加易懂,所以在初学代码的时候就应该养成这种习惯。
既是可以让你将来回看自己代码时能快速看懂,也能方便别人能理解你的代码(毕竟有些命名习惯是共通的嘛)
我每次做题前的一个基本的框架:
#include <bits/stdc++.h> //万能头文件 using namespace std; const int N = 100010, M = 200010, INF = 0x3f3f3f3f; // N 是题目中的取值范围, M一般用于无向图(数组要开两倍大小嘛,其实也可以用2 * N ,不过我偏向于用M。) // INF可以理解成int范围里的一个无穷大(快到int边界了) #define ll long long // long long 打起来好麻烦喔。。这样打两个 l 就可以啦 int n, m; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); // 用来加速cin 和cout 的,(听说比scanf会更快?我直接连夜舍弃scanf(什) ) return 0; // 有些测评网站没有这个会报错的 ... >_< }一些变量名称:(用简写是因为我容易打错字啊啊 也有一部分是因为懒)
一般数组: a[N] (没错打起来特方便特顺手) e[N] (手搓邻接表带来的习惯)
结构体: Node , Point (题目要用坐标且Node已经被用了时)
坐标 :(x , y) (u, v)
题目输出结果:ans (answer的简写), res (result的简写) ,
计数 : cnt (count 的简写)
左右区间 :[ l , r ] [ s , t ] (s是start,t是terminate(终端))
标记数组 st[N] (situation) vis [N] (visited)
单个判断 f (flag)
动态规划数组名 dp (有时候也会用 f )
背包问题里: v[N](value), w[N](weight,或者所占体积), m(背包容量)
(bb一句,我个人觉得v更适合当value,虽然它也是体积volume的简写字母qwq,也许也可以尝试va[N] 表示value,vo[N]表示volume ?)
字符串 : s(没错就取首字母),如果涉及子串问题的话,子串名为p
字符:单个的话习惯用c / ch, 数组用 c
并查集 : 数组名会用 p(parent) 或者 f (father)
在用邻接表时(链式向前星?):
数组 e[N](存节点, 表示是几号节点), ne[N](next), w[N](weight,存边的权重), h[N](链表头head), idx (index,索引);
在要使用pair时:
typedef pair <int, int> PII;
#define x first
#define y second
这样在后续调用的时候可以直接 t.x , t.y 啦 我懒得打 first 和 second
啊啊暂时想不起来了,以后再补充吧 (不会忘的吧)
标签:变量,int,习惯,long,数组,命名,简写,define From: https://www.cnblogs.com/W-qwq/p/17395744.html