下载此文档

STL入门基础(全).ppt


文档分类:IT计算机 | 页数:约67页 举报非法文档有奖
1/67
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/67 下载此文档
文档列表 文档介绍
C++ 模板与 STL 库介绍(参考北京大学单栋栋课件) 提纲?1. 概论?2. 模板机制的介绍? 3. STL 中的基本概念?4. 容器概述?5. 迭代器?6. 算法简介概论? C++ 语言的核心优势之一就是便于软件的重用? C++ 中有两个方面体现重用: ?1. 面向对象的思想:继承和多态,标准类库?2. 泛型程序设计(generic programming) 的思想:模板机制,以及标准模板库 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 ) { 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 ;} ,唯一的区别就是形参类型不同 3. 需要事先知道有哪些类型会使用这些函数,对于未知类型这些函数不起作用模板的概念 1. 所谓模板是一种使用无类型参数来产生一系列函数或类的机制。 2. 若一个程序的功能是对某种特定的数据类型进行处理,则可以将所处理的数据类型说明为参数,以便在其他数据类型的情况下使用,这就是模板的由来。 。 ,使它们操作不同的数据类型,从而避免需要为每一种数据类型产生一个单独的类或函数。模板分类?函数模板(function template) ?是独立于类型的函数?可产生函数的特定版本?类模板(class template) ?跟类相关的模板,如 vector ?可产生类对特定类型的版本,如 vector<int> 7求最大值模板函数实现 ,使用模板 template < class T > T max(T a , T b){ return ( a > b ) ? a , b; } < 模板形参表> <返回值类型> < 函数名>(模板函数形参表) { // 函数定义体} 8模板工作方式?函数模板只是说明,不能直接执行,需要实例化为模板函数后才能执行?在说明了一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中对应的形参,然后生成一个重载函数。该重载函数的定义体与函数模板的函数定义体相同,它称之为模板函数 9 #include <iostream> template <class T> T min(T a[],int n) { int i; T minv=a[0]; for( i = 1;i < n ; i++){ if(minv>a[i]) minv=a[i]; } return minv; } 编写一个对具有 n个元素的数组 a[ ] 求最小值的程序,要求将求最小值的函数设计成函数模板。 void main() { ina a[]={1,3,0,2,7,6,4,5,2}; double b[]={,-,,9,8}; cout<< ”a数组的最小值为: ”<<min(a,9)<< endl; cout<< ”b数组的最小值为: ”<<min(b,4)<<endl; } 此程序的运行结果为: a数组的最小值为: 0b数组的最小值为: -

STL入门基础(全) 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数67
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小282 KB
  • 时间2017-05-13