泛型编程技术支持程序员创建函数和类的蓝图(即模板,template),而不是具体的函数和类。
标准模板库STL(Standard Template Library),STL库是泛型编程技术的经典之作,它包含了许多非常有用的数据类型和算法。
当拥有一个模板时,编译器将根据模板自动创建一个函数,该函数会使用正确的数据类型完成相应的任务。
实例:函数模板
1 #include <iostream>
2 #include <string>
3 //using namespace std;
4 template <class T>//运用模板,告诉编译器,
5 //字母T在接下来的函数里代表一种不确定的数据类型
6 //以上class并不意味着这是类,而是约定俗成的写法
7 void swap(T &a,T &b)
8 {
9 T tmp = a;
10 a = b;
11 b = tmp;
12 }
13 int main()
14 {
15 int i1 = 100;
16 int i2 = 200;
17
18 std::cout << "交换前,i1 = " << i1 << ",i2 = " << i2 << "\n";
19 swap(i1,i2);
20 std::cout << "交换后,i1 = " << i1 << ",i2 = " << i2 << "\n";
21
22 std::string s1 = "yiwofeiye";
23 std::string s2 = "helloworld";
24
25 std::cout << "交换前,s1 = " << s1 << ",s2 = " << s2 << "\n";
26 swap(s1,s2);
27 std::cout << "交换后,s1 = " << s1 << ",s2 = " << s2 << "\n";
28 return 0;
29 }