个人的一些变量命名习惯

写在前面

个人认为,好的命名习惯可以让自己的代码更加易懂,所以在初学代码的时候就应该养成这种习惯。

既是可以让你将来回看自己代码时能快速看懂,也能方便别人能理解你的代码(毕竟有些命名习惯是共通的嘛)

我每次做题前的一个基本的框架:

#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 

 

啊啊暂时想不起来了,以后再补充吧 (不会忘的吧)

posted @ 2023-05-12 17:55  匿名人士W  阅读(35)  评论(0编辑  收藏  举报