1.模板是通過泛型的形式表現(xiàn)或運行
2.模板可以節(jié)省代碼量余佛,通過一族泛型參數的類或者函數可以體現(xiàn)
3.c++主要有類模板和函數模板
4.在模板定義中class和typename定義型別參數,不過建議使用typename,更加直觀
5.模板實例化分為顯式和隱式溯革,顯示的是在代碼中明確的要對型別參數進行實例化,for example:
std::max (1洋机,2);隱式的是在首次使用時根據具體情況使用一種合適的型別進行實例化,for example: std::max(1,2);
6.編譯器對模板的處理,編譯兩次:first--沒有實例化之前概漱,檢查模板代碼本身是否有語法錯誤暂题,second--實例化期間移剪,檢查對模板代碼的調用是否合法
7.參數推導原則:first:模板參數是由傳遞給模板函數的實參巨頂的 second:不允許自動類型轉換(每個T必須嚴格匹配)
8.模板函數可以重載,也可以和同名非模板函數共存(各種因素相同的條件下薪者,編譯器會優(yōu)先調用非模板函數共存)纵苛,對于類別不同,編譯器處理如下:
9.類模板成員函數的定義:
10.類模板的特化:
11.類模板特化的作用:
12.類模板的偏特化
13.偏特化的注意事項
14.類模板可以有默認值
15.操作符重載的規(guī)則
16.關聯(lián)特性(traits)
17.迭代器
18.Vector
19.Deque
20.List