改一下OI代码风格

Posted 全人类的绯想天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了改一下OI代码风格相关的知识,希望对你有一定的参考价值。

为了方便差错以及代码阅读,是时候改一下以前的代码风格了,新的代码风格规则如下:

  一、大致框架

    所有的include必须放在程序开头

    include顺序为:c++标准库>c标准库

    c标准库的引用应用c前缀而不是.h后缀

    main函数统一在整个程序的结尾

    程序的输入部分大体由init函数来实现

    所有函数均在全局变量声明后进行声明

    不使用using namespace std,使用using std::cin与using std::cout,方便打表

    预处理操作保存在prepare函数中,重置操作保存在reset操作中

  二、压行、压缩语句

    不通过‘,‘来将多个语句压缩成一个

    一般不进行压行,一下几种情况除外:

      对不同变量的相同赋值进行压行

        不同变量的相同赋值:

        1、赋值均为常数

        2、赋值变量或函数(这个函数不对变量进行引用)名相同

void init() {
    n = read(); m = read();
    for (int i = 1; i <= m; i++) {
        x = read(); y = read(); v = read();
        addedge(x, y, v); addedge(y, x, v);
    }
}

      引用同一个函数时进行压行

    压行时分号后应有一个‘ ‘

  三、花括号

    所有的左括号均不换行,且应与前面的语句通过一个‘ ‘隔开

    除struct的声明之外,右括号后均没有任何语句

    struct的变量名应与右括号通过一个‘ ‘隔开

    遇到左括号时缩进+1,遇到右括号时缩进-1

    for,while,if等语句后仅有一个语句时,不使用大括号,并将这个语句写在同一行,中间用‘ ‘隔开

1 struct node {
2     int y, v, ne;
3 } edge[100010];
4 
5 void init() {
6     n = read();
7     for (int i = 1; i <= n; i++) a[i] = read();
8 }

  四、空格

    对于圆括号来说,左括号的右边,右括号的左边没有空格

    单目运算符前后均无空格

    双目以及三目运算符前后均有空格

    ‘,‘‘;‘后有其余语句时用空格隔开

以上是关于改一下OI代码风格的主要内容,如果未能解决你的问题,请参考以下文章

OI-代码调试法

vxe-table怎么改原码

oi是啥意思?

[OI]Noip 2018(普及组)总结

强调一下编程风格

Java学习——强调一下编程风格