0%

程式撰寫風格的心得

Introduction

程式撰寫時,若寫得很亂或是很醜,極有可能導致無法找到錯誤的情況發生。在多人協作以及詢問他人問題時,好的程式碼風格可以使他人更快了解你在寫什麼。進而快速解決問題。

Detail

基本排版

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//首先,各層級之間應該要有 44 個空格。

#include<bits/stdc++.h>
using namespace std;

int main(){
ios::sync_with_stdio(0);cin.tie(0);

cout<<"Hello";

if(1==1){
cout<<"\n";
}

return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//再者,有些東西可以按照個人習慣,例如大括號的位置。
//但,筆者主觀認為除了 main 以外千萬不要用第三種(如下),看了還滿痛苦的。

//(↓)第一種
int f(){

}

/*--------------------------------------分隔線--------------------------------------*/

//(↓)第二種
int f() {

}

/*--------------------------------------分隔線--------------------------------------*/

//(↓)第三種
int f()
{

}

行內空格

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//行內空格排版,有兩種做法。
//原則上,如果習慣將程式碼放很大的人用第一種,其餘可以自由選擇,然而我較習慣用第一種。

//(↓)第一種
for(int i=0;i<n;++i){
cout<<a[i]<<" ";
}

/*--------------------------------------分隔線--------------------------------------*/

//(↓)第二種

for(int i=0; i<n; ++i) {
cout << a[i] << " " ;
}
1
2
3
4
5
6
7
//如果有需求將多個簡單指令壓在一行的話,建議使用空格。

for(auto u:g[n]) if(u!=p){
dfs(n);
}

a=0; b=0; c=0;

3. 區塊間空格

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//不同功能的區塊間可以空一行,可以讓後續向他人解說和整理自己思緒方便一些。

#include<bits/stdc++.h>
using namespace std;

const int N=100010;

vector<int> g[N];
int h[N],ind[N];
long long ans=0;

void dfs(int n,int p){
int mx=0;

if(g[n].empty()){
return;
}

for(auto u:g[n]){
if(u!=p){
dfs(u,n);
mx=max(mx,h[u]);
}
}

h[n]=mx+1;
ans+=h[n];
}

int main(){
ios::sync_with_stdio(0);cin.tie(0);

int n;
cin>>n;
for(int i=1;i<=n;++i){
int cn;
cin>>cn;
for(int j=0;j<cn;++j){
int c;
cin>>c;
g[i].emplace_back(c);
ind[c]++;
}
}

int rt;
for(int i=1;i<=n;++i){
if(ind[i]==0){
rt=i;
break;
}
}

dfs(rt,0);

cout<<rt<<"\n"<<ans<<"\n";
}

以上就是主要的內容,希望大家寫的順利。