写在前面

众所周知,在 Dev-C++ 上有一个代码格式化的功能,快捷键Ctrl+Shift+A

我的码风致力于写出格式化后毫无变化的代码,这被认为是标准代码

同时,对不可格式化的部分(如空格),我同样也会详细说明

值得一提的是,我的码风是跟着 lydrainbowcat 学的,在此致谢

头文件

一般情况下使用万能头文件,即:

#include <bits/stdc++.h>

注意 include 后有空格

不使用万能头文件的情况:

  • 在 POJ 等不能使用万能头文件的落后OJ上提交

  • 写 std

这种情况下,不同的头文件按照长度为第一关键字,字典序为第二关键字从上至下依序排列,如:

#include <cmath>
#include <cstdio>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>

原则上不必要的头文件不写

宏定义 & const

宏定义用于简写出现多次的较长字符串,如:

#define ll long long
#define pii pair<int, int>

或利用宏定义简写整条语句,如:

#define For (i, l, r) for (int i = l; i <= r; i++)
#define get(x) (t[t[x].f].ch[1] == x)

const 用于且只用于定义常量,如;

const int N = 1e5 + 6;
const double eps = 1e-6;

注意,const 如果由于定义表示数组大小的常量,则:

  • 其中代表常量的字符必须大写

  • 数必须为 xey + 6 的形式,其中 x, y 为具体的数

using namespace std;

紧跟在待 # 号的语句后面写,待 # 号的语句包括:

  • 头文件
#include <...>
  • 宏定义
#define ... ...

快读

平时禁止使用,比赛/考试时视情况而定

模板:

inline int rd() {
    int x = 0, o = 1;
    char ch = getchar();
    for (; !isdigit(ch); ch = getchar())
        if (ch == '-') o = -1;
    for (; isdigit(ch); ch = getchar())
        x = x * 10 + ch - '0';
    return x * o;
}

空格

下列情况使用空格:

  • 逗号,分号之后

  • for, while, if 之后

  • 任何运算符号的前后

  • 大括号不换行,在大括号之前

  • 结构体定义完后直接声明变量,在反大括号之后

下列情况禁止使用空格,若与上面矛盾以禁止为优先:

  • [] 内一个空格都不能有

  • ( 的右边,) 的左边

  • ++, -- 与变量之间

空行

用于且只用于下列情况:

  • 所有全局变量定义在开头,全部定义完之后

  • 两个函数之间

  • 主函数之后

inline

非递归函数时必须使用,递归函数时禁止使用

register

禁止使用别问我为什么

typedef

禁止使用别问我为什么

逗号

用于一次声明多个同类型变量,如:

    int x, y;

可以适当利用逗号压行,如:

    x = q.top(), q.pop();

ios::sync_with_stdio(0)

一般情况下禁止使用,但在使用 string 时例外,注意使用后不能用 scanf, printf

输入

少量输入使用 cin,大量输入使用 scanf

输出

少量输出使用 cout,大量输出使用 printf

大括号

一条语句禁止打大括号,多条语句必须打大括号而定

自加,自减

循环时必须在变量之后,其他视具体情况而定

下标

推荐从 1 开始,但不禁止从 0 开始

位运算

能使用位运算代替就尽量使用毕竟位运算是真快,卡常效果显著,但不能影响程序的可读性

xht37的码风的更多相关文章

  1. $Yeasion$的码风修改历程

    总之,今天是一个值得纪念的伟大日子,我将自己的码风进行了彻底的修改,大概是参考了Pks和\(Rqy\)的码风,分为以下几点. 1.变量名.在所有的计算符号之前和之后加空格.如:"&& ...

  2. P1106 删数问题 自己码风好菜

    一个人的码风好坏究竟会影响多少

  3. $\mathcal{Miemeng}$的病态码风计划

    晚上困的要命,先写个码风计划提提神. 计划目标 抵制无理压行. 抵制不可读代码. 倡导代码艺术化,分层化 具体的一些细节和展示 1>整体 首先要把预读部分(我这么叫的),命名域使用,全局变量定义 ...

  4. 码风QwQ

    注:卡常.压行时怎么有效怎么来QwQ 快读真香.( 不喜欢用字符数组,使用string. 此时cin cout输入前会加这样三句以优化: ios::sync_with_stdio(0); cin.ti ...

  5. 【BZOJ 2152】聪聪可可 点分治

    对于一棵树,fdrt找到重心,然后分治每个子树. 在一棵以重心为根的树上,符合条件的链是: 1.过重心(根) 2.不过重心 对于1我们只需dfs出距离重心(根)的距离然后统计再减去有重叠的边 对于2我 ...

  6. 【BZOJ-1009】GT考试 KMP+DP+矩阵乘法+快速幂

    1009: [HNOI2008]GT考试 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 2745  Solved: 1694[Submit][Statu ...

  7. BZOJ 4547: Hdu5171 小奇的集合

    Sol 首先,考虑这个要怎么搞...让总和最大的方法就是选出当前集合中最大的两个数相加放入集合中就可以了,证明非常简单,当前集合的和为x,它的和只会一直往后增加,所以只需要找到最大的两个数的和加入便是 ...

  8. 最大流加强 dinic+当前弧优化

    qyy开始练习网络流啦 , 啊 ,蒟蒻只会套版 ,很裸的题 , 我连题都不想发了 ,可以参考我的代码(虽然我也是看的别人的 #include <iostream> #include < ...

  9. 2015 Multi-University Training Contest 4

    1001 Olympiad 签到题1. # include <iostream> # include <cstdio> using namespace std; ]={}; b ...

随机推荐

  1. ubuntu ------ 网络 ifconfig 不显示IP地址

    确保4个服务是启动着的

  2. 如何打开.lxe文件

    介绍两款播放器: 第一款:PotPlayer,这款软件快进看学习视频特特别方便. 软件的下载地址:链接:http://potplayer.daum.net/?lang=zh_CN 第二款:屏幕录像专家 ...

  3. vmware centos7 网络配置

    1. 在vmware创建centos虚拟机 2. 在cmd下看一下本机所处的网段,并对一下vmware上的配置 如果同样处于同一网段(192.168.aaa.bbb,aaa处一致就行),就可以直接开机 ...

  4. SQL Server 表值函数

    表值函数还是很有意思的,我现在想实现一个功能.就是我查询出来的内容,我要对结果进行再次查询,也要输入参数,我想了想 1.存储过程  不能对执行后的结果进行再次查询,需要创建临时表,太麻烦 2.视图  ...

  5. 设计模式---接口隔离模式之门面模式(Façade)

    前提:接口隔离模式 在组建构建过程中,某些接口之间直接的依赖常常会带来很多问题.甚至根本无法实现.采用添加一层间接接口(稳定的),来隔离本来相互紧密关联的接口是一种常见的解决方案. 典型模式: 门面模 ...

  6. @JsonIgnore注解可以实现不返回前端字段

    import com.fasterxml.jackson.annotation.JsonIgnore; /** * 密码 */ @JsonIgnore private String password;

  7. vue @blur v-model数据没有更新问题

    今天遇到一个问题,是一个输入框绑定了一个失去焦点事件,要发送一个客户填写的数据给后台查询然后拿到返回值把它渲染到页面上,但是从后台获取到的数据却没有在页面上渲染出来,console.log打印时显示数 ...

  8. 【1】【leetcode-93】复原IP地址

    (不会,典型) 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11.135 ...

  9. 2018牛客网暑期ACM多校训练营(第三场)C Shuffle Cards(可持久化平衡树/splay)

    题意 牌面初始是1到n,进行m次洗牌,每次抽取一段放到最前面.求最后的序列. 分析 神操作!!!比赛时很绝望,splay技能尚未点亮,不知道怎么用. 殊不知,C++库里有rope神器,即块状链表. 基 ...

  10. ArcGis辅助编号(半自动)功能的插件式实现

    应邀写了一个ArcGis(ArcMap更确切一些)的辅助编号功能,其实只要想通了实现逻辑,实现的过程蛮简单的.相比挨个儿点要素写进编号或者借助“按键精灵”写入,直接操作宿主真是爽快得不能自已.无图言屌 ...