我的代码规范
概览
-
不再使用
using namespace std
-
工程中不推荐使用
using namespace std
,容易污染命名空间,同时一些函数添加std::
与不添加std::
差异很大,尤其是cmath
库中的函数 -
左括号换行,左花括号必须与上一级代码块的缩进相同
-
头文件
#include
必须全部写在开头,C的头文件必须以c开头而非.h
结尾 -
main
函数必须在整个程序末尾 -
常用函数尽量写成类和模板形式
-
不使用
int
的0, 1
代替bool
空行
- 所有的
#include
指令之后必须有一个空行。 - 不能有两个连续空行
- 独立的代码块之间要有空行
- 头文件块、函数、成员函数、结构体、类,全局变量块之间必须用空行隔开
{
和}
分别都要独占一行。互为一对的{
和}
要位于同一列,并且与引用它们的语句左对齐。
空格
- 前后必须都有空格::、双目运算符、三目运算符
- 后加前不加:
,
- 前后都不加:
. -> ::
- if、for、while 等关键字之后应留一个空格再跟左括号
(
,以突出关键字。
函数和变量
- 传参时按照实际需要传 引用、const引用、值
- 尽量以
lamda
函数形式写函数,思维连续 lamda
函数以引用传参- 尽量不使用全局变量
- 局部变量在用时定义
- 在合适的时间使用
static
变量 main
函数的返回值类型必须是int
,可以省略return 0;
。
命名
- 用
using
替代define
和typedef
- 常量,
typedef
定义的类型 全部大写
注释
- 一行注释一般采用
//…
,多行注释必须采用/*…*/
//...
注释时留一个空格
缩进
- 如果地位相等,则不需要缩进;如果属于某一个代码的内部代码就需要缩进。
- 用
tab
缩进替代用4个空格缩进
STL的使用
vector<bool>
不是vector
类型,谨慎使用(在算法竞赛可以使用)- 尽量用
vector
取代用户输入的数组,而非开足够大的数组 - 尽量使用
emplace_back
取代push_back
- 多使用
pair, tuple, sort, stable_sort, iota, accumulate, for_each, lambda函数
使得代码更加优雅
add 加
anc, ancestor 祖先
ans, answer 答案
bel, belong 属于
best 最佳的
build 建立
block 障碍
ch, char 字符
check 判定
color 颜色
cmp, compare 比较
cnt, count 计数器
cur, current 当前量
deg, degree 度数
dep, depth 深度
del 删除(delete是保留字)
delta 增量
diff, difference 差别
dist, distance 距离
div, division 除法,部分
dp 动态规划
edge 边
extra 额外的
fa, father 父亲
factor 因子
fail 失败
flag 标志
flow 流
from 来自
get 得到
Hash 哈希表(hash是保留字)
heap 堆
in 入
ind, index 标号
inq 在队列里
inf, infinity 无穷大
init, initialize 初始化
insert 插入
inv, inverse 翻转,颠倒
last 最后一个
len, length 长度
lim, limit 极限
low, lower 下边的
mat, matrix 矩阵
mid, middle 中间量
mod 模
modify 修改
mp, map 映射
mst 最小生成树
mul, multiply 乘法
node 结点
num, number 数量
nxt 后继(next是保留字)
out 出
pa, pair 对子
pre, precursor 前驱
prime 质数
pos, position 位置
prod, product 乘积
put 放置
que, queue 队列
query 询问
rank 秩
res, result 结果
res, residual 剩余
scc 强连通分量
size 大小
split 分裂
start 开始
stk, stack 栈
str 字符串
suc, succeed 后继
sum 和
tim 时间(time是保留字)
tmp, temporary 临时量
tree 树
to 表目的
unite 联合
up, upper 上边的
update 更新
used 使用过的
val, value 值
vec, vector 向量
vis, visit 访问
zero 零
emplace_back和push_back有什么区别啊,运行速度更快吗
https://blog.csdn.net/qq_37124218/article/details/127016701
可以看看这篇文章,emplace确实会快一点
哦哦,明白了,谢谢啦