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