本菜鸟的算法题代码风格

Alex_Cui

2019-03-21 20:49:29

Personal

**本文根据我个人的变化持续更新** 写算法题的风格嘛...当然不会想写正经项目这么严谨的啦~ 项目代码规范 铁则: **规范, 标准, 简明, 统一, 严格** 算法题码风: **去你的规范, 我能看懂就行了** 2333~, 开个玩笑, 下面是一段示例程序, 没有任何用途, 只是用来说明风格~ ```cpp // A.cpp - PXXXX // 文件头注释(一般我懒得写) #include <iostream> // 在头注释后不空行 #include <fstream> // 相同类型头文件并列 #include <cmath> // 先C++标准库头文件, 再C++中的C头文件 #include <cstdio> // 不使用万能头文件 #include <cstdlib> // 不依赖头文件本身的包含关系 #define BUFSIZE_ 1024 // 使用宏常量代替const变量(C++11前) #define INF 0x3f3f3f3f // 宏常量的命名全部大写 #define mid(l, r) (((l) + (r)) >> 1) // 宏函数小写, 参数和函数体必须使用括号 constexpr int BUFSIZE = 1024; // 使用constexpr表达式替代宏常量(C++11起) using namespace std; // 扩展std作用域的访问域, 前后空一行 //注: 项目中谁敢写我打死他 struct Point { // 大括号不换号, 前有空格, 定义前后空行 int x; // 简单的类(没有成员函数)使用struct结构体 int y; // 成员变量分开定义 // 使用简单构造函数或默认初始化 }; class Rect { // 复杂类使用class定义 public: // 按照public, protected, private, 先函数后变量顺序 Rect(Point &&rlt, Point &&rrb) { // &和*紧贴在参数一侧 lt = rlt; rb = rrb; } ~Rect() { } // 成员在过程中有new的在析构函数中delete, 没有则不写析构函数 int getSize() { // 函数遵循小驼峰命名法 return abs((lt.x - rb.x) * (lt.y - rb.y)); } public: // 成员函数和成员变量的访问限定符要分开写 Point lt; // 变量命名遵循小写下划线法 Point rb; }; // 全局变量定义区(能不用全局变量绝对不使用全局变量!) inline int max(int a, int b); // 声明函数 inline int min(int a, int b); // 这里不声明主函数 int main() { // 主函数类型为int(), 定义在最前面 int a, b, c; // 同类型变量连续定义并随手初始化 a = b = c = 0; // 使用连等代替多个赋值式 if (a != 0) b = 1; // 短体语句不换行 else b = 2, c = 7; // 短小的连续同类操作使用逗号表达式 return 0; // 主函数必须显式返回0 } inline int max(int a, int b) { // 简单的函数声明为内联函数 return a > b ? a : b; } inline int min(int a, int b) { return a < b ? a : b; } ```