一、泛型编程
泛型编程是编写与类型无关的通用代码,是代码复用的一种手段,模板是泛型编程的基础。
例如,使用 C 语言实现两个变量的交换,每种类型都需要单独编写函数:
void Swap(int& x, int& y) { int tmp = x; x = y; y = tmp; }
void Swap(double& x, double& y) { double tmp = x; x = y; y = tmp; }
void Swap(char& x, char& y) { char tmp = x; x = y; y = tmp; }
在 C++ 中引入模板的概念,类似于模具,通过模板可以快速生成多个函数。
二、函数模板
1. 函数模板的概念和格式
函数模板代表了一个函数家族,该函数模板与类型无关。当我们使用一个类型的函数,编译器会根据这个类型产生函数的特定类型版本。
语法格式:
template <typename T1, typename T2, ..., typename Tn>
// 正常写函数的实现即可,只是把类型换成上面的 T1 到 Tn
示例:
#include <iostream>
using namespace std;
template <typename T>
void Swap(T& x, T& y) {
T tmp = x;
x = y;
y = tmp;
}
int main() {
int a = 1, b = 2;
cout << << a << << b << endl;
(a, b);
cout << << a << << b << endl;
c = , d = ;
cout << << c << << d << endl;
(c, d);
cout << << c << << d << endl;
;
}


