1. 在函式體內定義的內建陣列,其元素均初始化為0;在函式體內定義的內建陣列,其元素均無初始化;不管陣列在哪定義,如果其元素為類元素(如string類),則自動呼叫該類的預設建構函式進行初始化。如果該類沒有預設建構函式,則必須為該類陣列元素提供顯示的初始化。
2. 動態建立的陣列,可以在句尾用()自動初始化陣列中的值(預設值)。如int *a = new int[10]();//此時陣列a中的所有元素的值為0。
3. 字元陣列既可以用一組由花括號括起來、逗號隔開的字元字面值()進行初始化,也可以用乙個字串字面值(「c++」)進行初始化。然而,要注意這兩種初始化形式並不完全相同,字串字面值包含乙個額外的空字元(null)用於結束字串。
4. 與vector不同,乙個陣列不能用另外乙個陣列初始化,也不能將乙個陣列賦值給另乙個陣列。
5. 指標的概念很簡單:指標用於指向物件。與迭代器一樣,指標提供對其所指物件的間接訪問,只是指標結構更通用一些。與迭代器不同的是,指標用於指向單個物件,而迭代器只能用於訪問容器內的元素。
6. 指標的基本用途是為了能夠在函式內修改「外部物件」。
7. char*tmp = null; tmp++;//錯誤,不能這樣使用++。正確的是char* tmp = new char[10];//舉例為十個元素的陣列。這樣也可以:char*tmp = getchara();//getchara的返回值是char*;
8. 建議盡量避免使用指標和陣列。許多有用的程式都可不使用陣列或指標實現,現代c++程式採用vector型別和迭代器取代一般的陣列、採用string型別取代c風格字串。
9. 理解指標宣告語句時,請從右向左閱讀。(如 string *pstring;//把pstring定義為指向string型別物件的指標變數)
10. 何時使用const迭代器?又何時使用const_iterator?解釋兩者的區別。
答:const迭代器是迭代器常量,該迭代器本身的值不能修改,即該迭代器在定義時需要初始化,且初始化之後,不能再指向其他元素,若需要指向固定元素的迭代器,則可以使用const迭代器。
const_iterator是一種迭代器型別,對這種迭代器型別解引用會得到乙個指向const物件的引用,即通過這種迭代器訪問到的物件是常量。該物件不能修改,因此,const_iterator型別只能用於讀取容器的元素而不能修改元素的值。若只需遍歷容器中的元素而無需改變元素的值,則可用此型別。
我的C 筆記
1,map的key值是不能重複的,char 比較的是位址,所以認為key值相同,所以你只能插入乙個元素 若要用char 做key,需要過載操作符 t1,t2 也就是map的第三個引數,當然你用std string做key的話,可以不用過載這個操作符。2,char轉int char a 1 int b...
我的C 筆記
1,map的key值是不能重複的,char 比較的是位址,所以認為key值相同,所以你只能插入乙個元素 若要用char 做key,需要過載操作符 t1,t2 也就是map的第三個引數,當然你用std string做key的話,可以不用過載這個操作符。2,char轉int char a 1 int b...
(無聊)我我我我的C 筆記(一)
我我我要學c 可是我我我只會c。所以,這篇筆記從乙個c初學者的角度。試著理解c 他在狂笑 概念 所以為什麼要有物件導向程式設計?當然,我們寫乙個hello world算乙個2 3是不需要物件導向的,但是當軟體年得越來越大,越來越多的 量的時候。問題就來了 舉個例子,我要做fifa遊戲,額這個遊戲已經...