簡單程式設計技巧

2021-07-15 06:44:37 字數 797 閱讀 3971

引自soul machine 《leetcode 題解》

1)在判斷兩個浮點數a和b是否相等時,不要用a==b,應該判斷二者之差的絕對值fabs(a-b)是否小於某乙個閾值,例如le-9

2)判斷乙個整數是否是奇數,用x%2!=0,不要用x%2==1。因為x可能是負數

3)用char的值作為陣列的下標(例如,統計字串中每個字元出現的次數),要考慮到char可能是負數。有的人考慮到了,先強制轉型為unsigned int再用作下標,這仍然是錯的。正確的做法是,先強制轉型為unsigned char,再用作下標。這涉及c++整型提公升的規則

4)vector和string優先於動態分配的陣列

首先,在效能上,由於vector能保證連續記憶體,因此一旦分配了後,它的效能跟原始陣列相當。

其次,如果用new,意味著你要確保後面進行了delete,一旦忘記了,就會出現bug,且這樣需要都寫一行delete,**不夠短;

再次,宣告多維陣列的話,只能乙個乙個new,例如:

int**ary=new

int*[row_num];

for(int i=0;inew

int[col_num];

用vector的話一行**搞定

vector

>ary(row_num,vector

(col_num,0));

5 )使用reserve來避免不必要的分配

Python程式設計技巧 簡單的wc命令實現

wc這個命令可以實現對檔案行數 單詞數 位元組數等的統計。root sj python wc ctrl d 退出 hello good morning 2 3 20 2行,3個單詞,20個位元組 root sj wc etc passwd 26 38 1206 etc passwd 下面寫乙個簡單的...

程式設計技巧 適配技巧 2

上篇講了一些對尺寸的簡單適配 縮放適配 我們這裡來講一些對於需求而言的 適配 1.案例一 如果版本一需要四行檢視,版本二需要二行檢視,怎麼用最少的 和邏輯判斷去實現?這裡可以用到uiview的tag property nonatomic nsinteger tag default is 0 null...

ACCESS程式設計技巧

問題 dq 地區 xm 姓名 a 張三 a 李四 b 王五 b 王六 b 王七 c 王九 想做乙個檢視轉換成 dq xm a 張三,李四 b 王五,王六,王七 c 王九 解決在access模組裡寫函式 基本程式如下 public function return sl dq as string as ...