C++STL泛型编程1(长望班课件20140525) (1).ppt

C++STL泛型编程1(长望班课件20140525) (1).ppt

ID:49473718

大小:2.40 MB

页数:101页

时间:2020-02-07

C++STL泛型编程1(长望班课件20140525) (1).ppt_第1页
C++STL泛型编程1(长望班课件20140525) (1).ppt_第2页
C++STL泛型编程1(长望班课件20140525) (1).ppt_第3页
C++STL泛型编程1(长望班课件20140525) (1).ppt_第4页
C++STL泛型编程1(长望班课件20140525) (1).ppt_第5页
资源描述:

《C++STL泛型编程1(长望班课件20140525) (1).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1C++STL泛型编程(GenericProgramming)南京信息工程大学计算机与软件学院长望程序设计竞赛班2为什么要采用泛型编程?ACM竞赛中,需要用到数组、链表、字符串、栈、队列、平衡二叉树等数据结构,以及排序、搜索等算法;若全部自行编写比较麻烦;ANSIC++中包含了C++STL(StandardTemplateLibrary,标准模板库,又称C++泛型库),定义了常用的数据结构和算法,使用十分方便。有了STL,不必再从头写大多的标准数据结构和算法,并且可获得非常高的性能。但这不意味着我们不需要掌握基本数据结构与算法;相反,只有透彻理解了,才能更好的

2、使用泛型!泛型程序设计由AlexanderStepanov和DavidMusser创立,于1998年被添加进C++标准.含义:编写不依赖于具体数据类型的程序.目标:将程序写得尽可能通用.将算法从特定的数据结构中抽象出来,成为通用的.C++的模板为泛型程序设计奠定了关键的基础.STL(标准模板库,StandardTemplateLibrary)是泛型程序设计的一个范例.代码重用(reuse)!函数模板简介4【引例】交换2个整数和交换2个浮点数的C++程序://交换2个整数voidSwap(int&a,int&b){inttmp=0;tmp=a;a=b;b=tmp

3、;}//交换2个浮点数voidSwap(float&a,float&b){floattmp=0.0;tmp=a;a=b;b=tmp;}intmain(){inta=10,b=20;floatc=1.2,d=2.4;cout<<"a="<

4、。函数重载5能否提供一种方法将两个函数合并,以节省开发成本?引例typedefintDataType;voidSwap(DataType&a,DataType&b){DataTypetmp;tmp=a;a=b;b=tmp;}intmain(){inta=10,b=20;Swap(a,b);return0;}当需要交换两个浮点数时可以将DataType定义成float型数据即可。typedeffloatDateType;存在问题:更改一种数据类型时,需要修改程序源代码,必须重新编译程序。如果程序中需要交换多种数据类型数据,怎么办?6引例#include

5、ream>usingnamespacestd;templatevoidSwap(T&x,T&y){Ttmp=x;x=y;y=tmp;}intmain(){inta=10,b=20;floatc=1.2,d=2.4;cout<<"a="<

6、ap函数的形式参数,作为一种无类型的参数,当使用它的时候再将它用具体的参数实现?模板机制模板的概念模板是一种使用无类型参数来产生一系列函数或类的机制。模板是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。通过模板可以产生类或函数的集合,使它们操作不同的数据类型,从而避免需要为每一种数据类型产生一个单独的类或函数。7模板分类函数模板(functiontemplate)是独立于类型的函数可产生函数的特定版本类模板(classtemplate)与类相关的模板,如vector可产生类对特定类型的版本,如vector8模板工作方式模板

7、只是说明,需要实例化后才能执行或使用.9模板函数模板类模板模板类模板函数对象实例化实例化实例化函数模板(functiontemplate)定义格式:template<模板参数表>类型名函数名(参数表){函数体}templatevoidSwap(T&x,T&y){Ttmp=x;x=y;y=tmp;}10template:函数模板定义关键字.<>中是函数的模板参数,参数可有一个或多个,逗号隔开。不能为空!模板参数常用形式:class标识符或者typename标识符模板参数表明函数可以接收的类型参数,可以是内部类型,也可以是自定义类型.templat

8、evoidSwa

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。