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