泛型编程
泛型编程简单来说就是编写与类型无关的通用代码,是代码复用的一种手段。而模板是泛型编程的基础。
举个简单的例子,假设我们需要写一个swap的交换函数,如果我们按部就班的正常去写的,那么针对以下情况我们就编写出好几种函数,仅仅为了一个简单的交换。
void swap(int& a, int& b);//针对int类型
void swap(double& a, double& b);//针对double类型
void swap(char& a, char& b);//针对char类型
但是,上述函数内部的操作却是相似的,于是为了解决这种问题,我们提出了泛型编程,我们用一个模具来代替类型,让编译器去识别,去替我们做那些重复的事情。
而我们的模具分为了函数模板和类模板,下面就对这两者进行逐一的介绍。
函数模板
概念
函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生特定的函数。也就是使用的时候让编译器来决定本次的类型到底是什么。