順序容器的比較
|
插入|刪除位置
/效率
|
頭部
|
中間
|
尾部
|
隨機訪問
|
|
vector
|
低
|
低
|
高
|
Yes
|
|
list
|
高
|
高
|
高
|
No
|
|
deque
|
高
|
低
|
高
|
Yes
|
posted @
2006-08-03 21:18 beyonlin 閱讀(346) |
評論 (1) |
編輯 收藏
創建對象的幾種方式的效率比較
這里以string類為例:
1、string str1 = "";
2、string str2 = string();
3、string str3;
第一種方式:調用string類接受字符串形參的構造函數,創建一個臨時對象。
然后調用復制構造函數用該對象初始化str1。
第二種方式:調用string類的默認構造函數,創建一個臨時對象。
然后調用復制構造函數用該對象初始化str2。
第三種方式:直接調用string類的默認構造函數初始化str3。
創建臨時對象的代價是高的。
因此創建對象應盡量不要使用會創建臨時對象的初始化方式。
在使用類時也盡量不要創建臨時對象。
posted @
2006-06-28 00:10 beyonlin 閱讀(501) |
評論 (1) |
編輯 收藏
包含以下成員的類的構造函數必須使用初始化
1、 沒有默認構造函數的類類型的成員。
2、 const成員。
3、
引用類型的成員。
posted @
2006-06-27 00:11 beyonlin 閱讀(426) |
評論 (0) |
編輯 收藏
推薦一款快速編輯C++代碼的插件Visual Assist。
它能自動識別各種關鍵字,系統函數,成員變量,
自動給出輸入提示,自動更正大小寫錯誤,
自動標示錯誤,等等等等。
用了它,你寫代碼的速度一定大大提高。
posted @
2006-06-18 17:39 beyonlin 閱讀(681) |
評論 (2) |
編輯 收藏
Once in a time...
看到一段代碼:
char *p1,*p2;
//something
if(p1!=0)strcpy(p2,p1);
奇怪,指針怎么能夠和0相比呢?
N days later...
一個有效的指針有三種狀態:
一、保存一個特定對象的地址。
二、指向某個對象后面的另一對象。
三、值為0,表明它不指向任何對象。
if(p1!=0)strcpy(p2,p1);
<=>
if(p1!=NULL)strcpy(p2,p1);// 這種形式更易理解。
NULL 是在 cstdlib 頭文件中定義的變量,值為0.
posted @
2006-06-10 13:01 beyonlin 閱讀(361) |
評論 (0) |
編輯 收藏