C++模板与STL库介绍
单栋栋
sdd@net.pku.edu.cn
提纲
1.概论
2.模板机制的介绍
3.STL中的基本概念
4.容器概述
5.迭代器
6.算法简介
概论
C++语言的核心优势之一就是便于软件的重用
C++中有两个方面体现重用:
1.面向对象的思想:继承和多态,标准类库
2.泛型程序设计(genericprogramming)的思想:模板
机制,以及标准模板库STL
这次课的重点
泛型程序设计
泛型程序设计,简单地说就是使用模板的程序设计法。
将一些常用的数据结构(比如链表,数组,二叉树)和算法(
比如排序,查找)写成模板,以后则不论数据结构里放的是什
么对象,算法针对什么样的对象,则都不必重新实现数据结构
,重新编写算法。
标准模板库(StandardTemplateLibrary)就是一些常用数
据结构和算法的模板的集合。主要由AlexStepanov开
发,于1998年被添加进C++标准
有了STL,不必再从头写大多的标准数据结构和算法,
并且可获得非常高的性能。
模板引子
1.假如设计一个求两参数最大值的函数,在实践中我们可
能需要定义四个函数:
intmax(inta,intb){return(a>b)?a,b;}
longmax(longa,longb){return(a>b)?a,b;}
doublemax(doublea,doubleb){return(a>b)?a,b;}
charmax(chara,charb){return(a>b)?a,b;}
2.这些函数几乎相同,唯一的区别就是形参类型不同
3.需要事先知道有哪些类型会使用这些函数,对于未知类
型这些函数不起作用