zoukankan      html  css  js  c++  java
  • Code Style

    预编译指令:

    顺序:

    • $ pragma $

    • $ include $

    • $ define $

    • $ undef $

    缩进:

    $ define $ $undef $ 继承上层缩进,其余不缩进。

    如果有多层嵌套 $#if $ $ #endif $ $#endif $后应有对应的注释标识出与其对应的 $#if $。

    尽量不要适用 $#define $而使用 $const $, $typedef $, $inline $。

    所有预编译命令不应缩进。

    写法:

    • $ include $ 中能使用 $ < > $ 的尽量不要使用 $ " " $ ;

    • $ include $ 中不使用空格。

    • $ define undef $ 中允许被定义的宏为全部大写或全部小写,其余情况不允许使用大写。

    命名空间:

    写法:

    总是使用 $ using namespace std $ 或 导入

    • $ using $ $ std::cin $
    • $ using $ $ std::cout $
    • $ using $ $ std::endl $
    • $ using $ $ std::min $
    • $ using $ $ std::max $

    等在代码出现过的 $ std namespace $ 中的函数。

    命名空间中可以使用 $ #define $ ,但必须
    在结尾处 $ #undef $ ,且 $ #define $ 指令应置于命名空间的开头处。

    任何大型数据结构使用其大写简写为名称的单独 $ namespace $ , 如
    $ namespacequad KDTquad namespacequad SGTquad namespacequad TRP, $ 并总是在命名空间的结尾处 (}) 后缀一分号 $ ';' $ ,例如:

    namespace SGT
    {
        #define LCH tree[inx].ch[0]
        #define RCH tree[inx].ch[1]
        
        void func1()
        {
            // .....
        }
        
        #undef LCH
        #undef RCH
    };
    

    顺序:

    应置于代码开头处的所有预编译指令之后。

    缩进:

    继承上层缩进。

    花括号:

    写法:

    使用花括号时有两种规则:

    1. 使用 (Allman) 式花括号,也即花括号换行。 例如:
    void Func1()
    {
        for (;;)
        {
            // ...
        }
        if (case)
        {
            // ....
        }
        else
        {
            if (case 2)
            {
                // ..
            }
            else { Func2(); return; }
        }
    }
    
    1. 或者花括号的左右边都在同一行,右括号与左花括号之间有一空格,例如:
    for (;;) {Func1();Func2();}
    

    注意:

    即使内部只有一条语句的 $ if $ 与 $ for $ 等也必须用大括号括起来。

    行:

    写法:

    每行可以有多个(两个及以上)语句。但任何时候,每行不应太长。

    多个意义独立的代码块之间应用一个空行隔开 ;

    非空行尾不应有多余的空格 ;

    $ usingquad namespacequad std; $ 后有一空行 ;

    函数、成员函数、结构体、全局变量块之间必须用空行隔开。

    缩进:

    继承上层缩进 。

    指针与引用:

    写法:

    (OI) 代码中不使用指针。

    任何引用前的标识符 $ '&' $ 和引用变量类型标识符之间用一个空格隔开,如

    void Func1(int &q, int &t)
    {
        int a, b;
        int &aref = a, &bref = b;
    }
    

    缩进:

    继承上层缩进 。

    函数与变量:

    写法:

    函数:

    函数采用大驼峰命名法,选择性地加入下划线 $ '_' $ ,采用对应算法缩写,如 $ KMP, CRT, NTT,CDQ; $ 如:

    void Update()
    {
    	···
    }
    
    int Qry()
    {
    	···
    }
    
    Mat Gauss_Elimination()
    {
    	···
    }
    

    空函数体必须为以下格式:

    void Func1() {}
    

    变量:

    变量可以以一个小写字母命名;

    全局数组名可使用1个大写字母+0~2个数字命名,如A, T1,F01;

    简短的inline函数,如min, upd(用作数据结构中的update操作);

    常量可以大写字母命名,如N, M;

    临时变量可以以下划线开头。

    缩进:

    继承上层缩进 。

    空格:

    写法:

    • 逗号前后都不能有空格。

    • 冒号的两侧必须有一空格。

    • $ '++' $ $ '--' $ 前/后不需空格。

    • 形如 $ vector< pair<int, int> > $ 的声明,每对 $ <> $ 前后空格需要对称。

    • $ '::' '.' $ 的两侧不应有空格。

    • 初始化列表前后不需空格,如 $ max({a, b, c}); $ 。

    缩进:

    继承上层缩进 。

    注释:

    缩进:

    继承上层缩进。

    写法:

    • 单行注释使用 (//) ,之后应有一空格,如 $// do $ $something $ 。

    • 多行注释使用 $/* $ (*/) ,其中 (/*)(*/) 应独占一行,且 (/*) 前和 (*/) 后应有一空行,例如:

    int func1()
    {
        int a=1,b=2;
        
        /*
        return 3;
        */
        
        return a+b;//a+b=3 
    }
    
  • 相关阅读:
    FZU 2098 刻苦的小芳(卡特兰数,动态规划)
    卡特兰数总结
    FZU 1064 教授的测试(卡特兰数,递归)
    HDU 4745 Two Rabbits(区间DP,最长非连续回文子串)
    Java 第十一届 蓝桥杯 省模拟赛 正整数的摆动序列
    Java 第十一届 蓝桥杯 省模拟赛 反倍数
    Java 第十一届 蓝桥杯 省模拟赛 反倍数
    Java 第十一届 蓝桥杯 省模拟赛 反倍数
    Java 第十一届 蓝桥杯 省模拟赛 凯撒密码加密
    Java 第十一届 蓝桥杯 省模拟赛 凯撒密码加密
  • 原文地址:https://www.cnblogs.com/oierwyh/p/11342067.html
Copyright © 2011-2022 走看看