泛型程序设计基本概念
1、C++的代码重用
C++是一门很强大的语言,他有两种机制来提高代码的重用性,其中一种通过继承实现。另外一种就是泛型。使用模板的程序设计就是泛型程序设计。在C++中模板有两种体现形式,一种是类模板,一种是函数模板。
2、泛型程序设计
简单地说就是使用模板的程序设计法。将一些常用的数据结构(比如链表,数组,二叉树)和算法(比如排序,查找)写成模板,以后则不论数据结构里放的是什么对象,算法针对什么样的对象,则都不必重新实现数据结构,重新编写算法。标准模板库 (Standard Template Library) 就是一些常用数据结构和算法的模板的集合。有了STL,不必再写大多的标准数据结构和算法,并且可获得非常高的性能。
3、STL中的基本的概念
(1)容器:
可容纳各种数据类型的通用数据结构,是类模板。
(2)迭代器:
可用于依次存取容器中元素,类似于指针。(用起来像指针,内部也是用指针实现的。)
(3)算法:
用来操作容器中的元素的函数模板。
算法举例:
-
sort()来对一个vector中的数据进行排序。
-
find()来搜索一个list中的对象。
注意:算法本身与他们操作的数据的类型无关,因此他们可以在从简单数组到高度复杂容器的任何数据结构上使用。
迭代器举例:
int array[100];
sort(array,array+70); //将前70个元素排序
该数组就是容器,而 int * 类型的指针变量就可以作为迭代器(作为数组的迭代器)(array、array+70 都是迭代器), sort算法可以作用于该容器上,对其进行排序。