收藏 分销(赏)

第19章-模板与C--标准库.ppt

上传人:仙人****88 文档编号:14746134 上传时间:2026-11-13 格式:PPT 页数:12 大小:226KB 下载积分:10 金币
下载 相关
第19章-模板与C--标准库.ppt_第1页
第1页 / 共12页
第19章-模板与C--标准库.ppt_第2页
第2页 / 共12页


点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,1-,*,第,19,章 模板与,C+,标准库,杨章伟,e-mail:yang505412,课程内容安排,模板概述,函数模板,类模板,C+,标准库概述,字符串库,小结,习题,模板,有程序设计语言基础的读者应该听说过模板的概念,事实上,在前面的章节中,就已经使用到了模板。模板是实现代码复用的一种工具,其有函数模板和类模板之分。此外,模板是现代,C+,程序设计中的一个重要概念,使用模板可大大减少代码数量,提高代码的效率。,C+,模板是近几年来对,C+,的一种扩展,模板是根据类型参数来产生函数和类的机制。使用模板可以设计一个对许多类型的数据进行操作的类,而不需要为每个类型的数据建立一个单独的类。,模板的引入,简单地说,模板是实现代码复用的一种工具,它可以实现类型参数化,把类型定义为参数,实现代码的真正复用。,【,范例,19-1】,模板的引入。该范例使用了模板来实现多个数据类型的求最大最小值 。,函数模板,模板分两类:函数模板和类模板,用户可使用它们来构造模板函数或模板类。模板经过实例化后就得到模板函数或模板类,模板函数或模板类再经过实例化后就得到对象。,。,函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计,其最大特点是把函数使用的数据类型作为参数。一般来说,函数模板的定义形式为:,template,(,参数表,),函数体,生成模板函数,函数模板只是一个模板,并不是真正的函数。函数模板的数据类型参数标识符实际上是一个类型形参,在使用函数模板时,要将这个形参实例化为确定的数据类型。将类型形参实例化的参数称为模板实参,用模板实参实例化的函数称为模板函数。模板函数的生成就是将函数模板的类型形参实例化的过程。,【,范例,19-2】,生成模板函数。该范例将上述模板函数实例化为浮点型的模板函数。,类模板,类模板也称为类属类或类生成类,是为类定义的一种模式,它使类中的一些数据成员和成员函数的参数或返回值可以取任意的数据类型。类模板是一个具体的类,它代表一族类,是这一族类的统一模式,使用类模板就是要将它实例化为具体的类。,一般来说,定义类模板的一般形式为:,template,class,类名,/,C+,标准库概述,一般来说,,C+,标准可分为两部分:,C+,语言本身和,C+,标准库。由于,ANSI C+,的标准未定,因此随着,ANSI C+,标准推出的,C+,标准库相对于,Visual C+,是比较新。标准库提供了标准的输入,/,输出、字符串、容器(如矢量、列表和映射等)、非数值运算(如排序、搜索和合并等)和对数值计算的支持。,字符串库,C+,标准库包含内容很多,但由于字符串在程序设计中的重要性,本节将单独对标准库中的字符串库(,string,库)做具体讲解。,读写字符串,字符串赋值,字符串比较,字符串长度和空字符串,本章主要介绍了,C+,中的模板和标准库的相关内容。模板在实际程序中应用较为频繁,其具有宏所不具备的优势,可以提高代码的执行效率。模板分为函数模板和类模板两种,模板都是在实际程序中不能直接调用的,需要先将其生成模板函数和模板类才能使用。,C+,标准库是一个,C+,函数的仓库,包括前面介绍的,STL,。本章主要就标准库中的,string,字符串库做了重点介绍,对其中的字符串读写、赋值、比较和判断为空等的函数通过示例进行了讲解。,小结,1,编写一个程序,通过函数模板的声明和模板函数的生成,实现不同数据类型数值的交换,。,【,解答,】,该试题主要考查函数模板的相关内容。该程序段要求实现不同数据类型数值的交换,就必须定义函数模板,在模板中完成交换功能,并在主函数中分别对该模板进行整型实例化和浮点型实例化,从而实现交换的目的。,2,编写一个使用类模板对数组进行排序、查找和求元素和的程序。,【,解答,】,该,试题可以设计一个类模板,templateclass Array,,用于对,T,类型的数组进行排序、查找和求元素和,然后由此产生模板类,Array,和,Array,。,习题,习题,3,分析以下程序的执行结果。,#include,template,class Sample,T n;,public:,Sample(T,i)n,=i;,void operator+();,void,disp()cout,n=n,endl,;,;,template,void Sample:operator+(),n+=1;/,不能用,n+;,因为,double,型不能用,+,int,main(),Sample,s(a,);,s+;,s.disp,();,
展开阅读全文

开通  VIP、SVIP  下载更划算
下载10份以上建议开通 VIP 会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        关注我们

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服