xht37的码风
写在前面
众所周知,在 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的码风的更多相关文章
- $Yeasion$的码风修改历程
总之,今天是一个值得纪念的伟大日子,我将自己的码风进行了彻底的修改,大概是参考了Pks和\(Rqy\)的码风,分为以下几点. 1.变量名.在所有的计算符号之前和之后加空格.如:"&& ...
- P1106 删数问题 自己码风好菜
一个人的码风好坏究竟会影响多少
- $\mathcal{Miemeng}$的病态码风计划
晚上困的要命,先写个码风计划提提神. 计划目标 抵制无理压行. 抵制不可读代码. 倡导代码艺术化,分层化 具体的一些细节和展示 1>整体 首先要把预读部分(我这么叫的),命名域使用,全局变量定义 ...
- 码风QwQ
注:卡常.压行时怎么有效怎么来QwQ 快读真香.( 不喜欢用字符数组,使用string. 此时cin cout输入前会加这样三句以优化: ios::sync_with_stdio(0); cin.ti ...
- 【BZOJ 2152】聪聪可可 点分治
对于一棵树,fdrt找到重心,然后分治每个子树. 在一棵以重心为根的树上,符合条件的链是: 1.过重心(根) 2.不过重心 对于1我们只需dfs出距离重心(根)的距离然后统计再减去有重叠的边 对于2我 ...
- 【BZOJ-1009】GT考试 KMP+DP+矩阵乘法+快速幂
1009: [HNOI2008]GT考试 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2745 Solved: 1694[Submit][Statu ...
- BZOJ 4547: Hdu5171 小奇的集合
Sol 首先,考虑这个要怎么搞...让总和最大的方法就是选出当前集合中最大的两个数相加放入集合中就可以了,证明非常简单,当前集合的和为x,它的和只会一直往后增加,所以只需要找到最大的两个数的和加入便是 ...
- 最大流加强 dinic+当前弧优化
qyy开始练习网络流啦 , 啊 ,蒟蒻只会套版 ,很裸的题 , 我连题都不想发了 ,可以参考我的代码(虽然我也是看的别人的 #include <iostream> #include < ...
- 2015 Multi-University Training Contest 4
1001 Olympiad 签到题1. # include <iostream> # include <cstdio> using namespace std; ]={}; b ...
随机推荐
- Linux 中用 dd 命令来测试硬盘读写速度
dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. dd 命令通用语法格式如下: dd if=path/to/input_file ...
- 5款 Mac 常用PDF阅读和编辑软件推荐
PDF和Word.TXT等文档一样,都是我们最常用的文档格式,那么一款好用的浏览或编辑PDF的工具就很有必要了,今天和大家分享5款Mac上优秀的PDF阅读和编辑工具. 以下内容来自[风云社区 SCOE ...
- Go-day02
Go程序的基本结构 ***func init() 会在main函数之前执行 1.包中的函数调用 a.同一个包中函数,直接调用 b.不同包中函数,通过包名+点+函数名进行调用 2.包的访问控制规则 a. ...
- python对象初始化
当python对象被创建以后,需要将对象进行初始化.Python有一个构造函数和一个初始化函数: 1.构造函数__new__,只接受一个参数,即类本身(它会在对象被构造之前调用,所以这里也就没有sel ...
- Ruby on Rails,一对多关联(One-to-Many)
在上一篇文章中,我们知道通过has_one和belongs_to方法定义一对一关联关系.接下来是更常见的情况,一对多关联.比如老师与所教课程的关系,一个老师负责多个课程.换成对象之间的关系就是:一个老 ...
- 加密PDF文件的打印问题
工作中遇到网上下载的PDF文件加密,并且不能打印 解决方法: 1.解密: 去网站下载解密软件,1M左右:http://www.onlinedown.net/soft/19939.htm 直接解压,运行 ...
- HDU 1015(字符运算 **)
题意是在一段大写英文字符中找出 5 个字符通过代入公式运算得到目标值,如有多组字符满足题意,则输出字典序最大的一组,否则输出 no solution. 应该是用深搜做的,但是直接暴力也过了……(应该没 ...
- redis的安装与简单使用
redis的安装与简单使用: Redis简介: redis的应用场景: 1.关于关系型数据库和nosql数据库 关系型数据库是基于关系表的数据库,最终会将数据持久化到磁盘上,而nosql数据 ...
- 解决IOS移动端固定定位失效问题
根据浏览器窗口position:fixed; 定位在底部的元素,会随着屏幕的滚动而滚动,在iOS系统上不起作用. <div class="header">头部</ ...
- 【转载】C# 字符串截取
https://blog.csdn.net/maba007/article/details/78424760