c++stl泛型编程ppt课件

c++stl泛型编程ppt课件

ID:17405729

大小:2.80 MB

页数:143页

时间:2018-08-31

c++stl泛型编程ppt课件_第1页
c++stl泛型编程ppt课件_第2页
c++stl泛型编程ppt课件_第3页
c++stl泛型编程ppt课件_第4页
c++stl泛型编程ppt课件_第5页
资源描述:

《c++stl泛型编程ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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

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

3、//交换2个整数voidSwap(int&a,int&b){inttmp=0;tmp=a;a=b;b=tmp;}//交换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、float型数据即可。typedeffloatDateType;存在问题:更改一种数据类型时,需要修改程序源代码,必须重新编译程序。如果程序中需要交换多种数据类型数据,怎么办?7引例#includeusingnamespacestd;templatevoidSwap(T&x,T&y){Ttmp=x;x=y;y=tmp;}voidmain(){inta=10,b=20;floatc=1.2,d=2.4;cout<<"a="<

6、"<

7、unctiontemplate)是独立于类型的函数可产生函数的特定版本类模板(classtemplate)与类相关的模板,如vector可产生类对特定类型的版本,如vector9模板工作方式模板只是说明,需要实例化后才能执行或使用.10模板函数模板类模板模板类模板函数对象实例化实例化实例化函数模板(functiontemplate)定义格式:template<模板参数表>类型名函数名(参数表){函数体}templatevoidSwap(T&x,T&y){Ttmp=x;x=y;y=tmp

8、;}11template:函数模板定义关键字.<>中是函数的模板参数,参数可有一个或多个,逗号隔开。不能为空!模板参数常用形式:class标识符或者typename标识符模板参数表明函数可以接收的类型参数,可以是内部类型,也可以是自定义类型.【例1】简单函数模板定义和应用.#includeusingnamespacestd;templateTM

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

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

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