一 前言
一个好的代码风格,可以让别人更好地看懂你的代码。在竞赛中,良好的码风不仅有助于自己理解代码,也便于发布和交流。
市面上的代码规范众多,本建议融合了这些规范、常用习惯及编者观点,整理如下。
二 C++ 基础语句规范
2.1 命名规范
总述
在 C++ 命名时,优先采用简洁明了的单个字符或常用多字符作为变量名。变量名需具备通用性和指向性。对于非题目规定且不通用、无指向性的命名,需要添加注释介绍。
说明
好的名字能让人便捷地看懂代码。例如图中节点通常用 v 表示(vertex 首字母),这在图论中很常见。
简洁语言有时难以理解,对于题目未解释且通用性较差的内容,添加注释至关重要。例如使用 a 定义数组存储元素时,应通过注释解释含义,因为 a 本身无意义,仅是字母表开头。
示例
// 优秀的变量名:int n, m; // 题目所规定的变量名
// 通过 v1 和 v2 代表节点,便于理解
for (int i = 1; i <= n; ++i) {
int v1, v2;
std::cin >> v1 >> v2;
std::cout << "节点:" << v1 << ' ' << v2;
}
// 不推荐的变量名
int vertex; // 不便于快速写代码,且需背诵单词
int a; // 他人难以理解 a 的含义
// 补救方案
int a; // store number 1(存储数字 1)
2.2 注释规范
总述
注释用于便于理解程序内容,但不可滥用。应在难以理解处标注,注重简洁、明了。较长内容使用 /* */ 标注,其余使用 //。优先使用英文注释,防止编码不支持中文字符。
说明
注释应圈住重点,避免长篇大论描述变量作用,也不要出现无效信息。
示例
/* 题目要求输入 n 个数字进行操作
* 因为 n 出自于题目,代表 n 个数字,此处可不注释,防止滥用
* 当然,输入 n 个数字时也不需要注释,这太好理解了
*/
// ...
int main() {
int n;
std::cin >> n;
std::vector<int> a(n + 1);
( i = ; i < n; ++i) {
std::cin >> a[i];
}
}

