第20章 万用的模板
在编写链表程序时,你可能会有这样的困惑:链表里面存储的数据类型可能是各种各样的,难道我们要为各种数据类型都写一个链表程序么?能不能写一个万用的链表程序呢?本章所介绍的模板,可以圆满地完成这一任务。在数据结构等后续课程中,也将经常使用到模板。
本章的知识点有:
- 函数模板的重载
- 模板类与类模板
- 链表类模板实例
- 向量及其操作
20.1 函数模板
在PowerPoint之类的软件中,有一种模板功能。模板提供的文档框架是基本完整的,只需要在一些地方填写上自己需要的内容,就是一个完整的文档。在C++中,也有这么一种模板(Template),只需要在使用之前填写自己需要的数据类型,就是一个完整的程序。模板是C++的一个重要功能。
20.1.1 从为什么需要模板说起
程序开发过程中经常需要把实现某一个独立功能的模块编写为一个函数。在函数的参数列表中,需要说明各个参数分别是属于什么数据类型的。为了适应不同的数据类型,需要利用C++的重载机制。例如要编写一个实现整型数据交换以及字符交换的swap函数,通过之前所学的知识,你可能会通过下面的方法