1.模板是通过泛型的形式表现或运行
2.模板可以节省代码量,通过一族泛型参数的类或者函数可以体现
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.模板函数可以重载,也可以和同名非模板函数共存(各种因素相同的条件下,编译器会优先调用非模板函数共存),对于类别不同,编译器处理如下:
9.类模板成员函数的定义:
10.类模板的特化:
11.类模板特化的作用:
12.类模板的偏特化
13.偏特化的注意事项
14.类模板可以有默认值
15.操作符重载的规则
16.关联特性(traits)
17.迭代器
18.Vector
19.Deque
20.List