ICPC編碼建議

2021-08-31 20:25:09 字數 1891 閱讀 7873

寫**最重要的是清晰,包括思路的清晰和**結構的清晰。我們無法保證寫的**一定是正確的,但我們可以保證自己是在頭腦清晰的情況下書寫,並且通過不斷的練習,用更加清晰的**結構實現。越清晰,程式就越可能正確,並且即使出錯也很容易看到問題。

0)在能過題的情況下,最樸素最好寫的方式就是最好的。

1)double x = 0;

scanf("%lf", x); // &x

printf("%lf\n", x); // output double -> %f

printf("%.6f\n", 0); // undef

// best practice

printf("%.4f\n", x + eps);

2)int a[10];

sizeof(a); // 10 * 4

void gao(int a)

3)const int inf = 0x7fffffff;

void dijkstra(int dist, int n)

4)// output %

printf("%%");

// output hex, oct

print("%x%o", a, b);

5)int a = 3;

if (a = 3)

6)int x = -7, m = 3;

printf("%d\n", x % m);

// best practice

printf("%d\n", (x % m + m) % m);

7)long long a = 1 << 40;

// best practice

long long a = 1ll << 40;

8)long long a;

printf("%i64d\n", a); // under windows

printf("%lld\n", a); // under linux

9)int main()

// best practice

int a[10 * 1000 * 1000];

int main()

// or

int main()

10)char a[11];

gets(a); // unsafe

// best practice

fgets(a, 11, stdin);

11)double a = 1.0, b = 1.0 / 888888888888888888 * 888888888888888888;

printf("%s\n", a == b ? "same" : "diff");

// best practice

int sgn(double x, double eps = 1.0e-9)

printf("%s\n", sgn(a - b) == 0 ? "same" : "diff");

12)// round up

(int)(a + eps)

(int)(a + eps + 0.5)

13)// small heap

priority_queue< double, vector, greater> que;

// unique

vectorvec;

sort(vec.begin(), vec.end());

vec.resize(unique(vec.begin(), vec.end()) – vec.begin());

14)總是用cerr輸出除錯資訊,這樣在注釋除錯資訊時,搜尋cerr就可以很容易注釋掉全部的除錯資訊。

15) codeblocks在執行視窗貼上資料的方法

16)總是使用fill_n函式

HTML編碼建議And如何更好的編碼

1 讓瀏覽器自己選擇渲染頁面的標準,同時為了擁抱未來 2 定義頁面字元編碼,精簡的 同樣的效果 3 樣式檔案放頭部,且儘量減少引入的檔案數量 複製 4 指令碼檔案放底部,當發布專案的時候盡量壓縮合併 複製 5 為頁面新增注釋 複製 6 縮排和換行 使用4個空格作為乙個縮排層級,大多數時候,開發工具幫...

CodeIgnitor編碼規範與建議

1.陣列標識 定義陣列時,應當根據php版本選擇不同的定義方式,新版本的定義方法往往更加美觀 對於php 7以前的版本,只能使用array 對於php 7之後的版本,定義陣列時使用更好 2.陣列追加 在對陣列進行追加時,不可使用 號,最美觀簡單的方法是使用php特有的連加符號 array1 1 ar...

編碼建議 魔鬼在細節

防止空指標和下標越界 這是我最不喜歡看到的異常,尤其在核心框架中,我更願看到資訊詳細的引數不合法異常,這也是乙個健狀的程式開發人員,在寫每一行 都應在潛意識中防止的異常,基本上要能確保一次寫完的 在不測試的情況,都不會出現這兩個異常才算合格。保證執行緒安全性和可見性 對於框架的開發人員,對執行緒安全...