版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、template template 函数体定义/template 开始的,该关键字之后是使用尖括号括起 形式为templatetypename 数据类型参数标识符其中,template 是定义模板函数的关键字;template 后面的尖括号不能省略;typename(class) Tfuc(TTdoubled; d的数据类型doubleTTdoubled; d的数据类型doubleTdoublefuc(doubledouble class 函数模板允许使用多个类型参数,但在 template typename或classtemplateclass 1,class template语句与函数模板
2、定义语句之间不允许有别的语句。如下面的12345template语句与函数模板定义语句之间不允许有别的语句。如下面的12345678template Tx,T2. 123456789 void&x,Treturnvoidi,charmin(ii正确调用 min(jj正确调用 min(ijmin(jimin(ii正确调用 min(jj正确调用 min(ijmin(ji1min(i,ij不能解, nt( void&x,Treturnvoidmin(i,min(j,min(i,min(j,i,char。1. 模板的概已经学过重载(Overloading),对重载函数。1. 模板的概已经学过重载(Ov
3、erloading),对重载函数而言,C+的检查机制能通过函数参数的不同及所类的不同。正确的调用重载函数。例如,为求两个数的最大值定义 MAX()函数需要对不/函数return(xy)?x:y/函数floatmax(floatx,floatreturn(xy)?x:y/函数doublemax(doublex,doublereturn(cy)?x:y但如果在主函数分别定义了 chara,b; 那么在max(a,b);时 程序就会出错,因没有定义char的重现在新审视上述的 一套代码解决现在新审视上述的 一套代码解决这个问题呢?这样就会避免因重载函数定义不 全面而带来的调用错误。为解决上述题 即把
4、类型定义为参数, 从而实现了真正的代码可重用性。模版可以分为两类,一个是函数模版,外一个是类模版函数模板的写函数模板的一般形式如下 返回类型 函数名(形参表/函数定义体 说明: template一参多余一个 ,每个形参前都要加class 可以包含基本数据类型可以包请看以下程序#includeusingusing一个函数模版,用来比较输入的两个相同数据类型的参数的大小,classtypenametemplateclassT x,T voidmain(doublecoutcout程序 voidmain(doublecoutcout程序main()函数中定义了两个整型变量n1n2 两个双精度类型变量
5、d1d2然后调用minn2); 即实例化函数模板Tx,Ty)其中型求出n1,n2中的最小值同理调用时d1,d2中的3. 类模板的定义一个类模板Templateclass或者也可以用typenameTclass类名类定义 是是多/ #ifndef#define templatetypenameT1,typenameclassT1 T2 myClass(T1a,T2void#define templatetypenameT1,typenameclassT1 T2 myClass(T1a,T2voidtemplatetypenameT1,typenamemyClass:myClass(T1a,T2/
6、这是voidtemplate,char,char class, , 标准模板库STL简介 STL 的代码从广义上讲分为三类:algorithm(算法、container(容器)和 iterator(迭标准模板库STL简介 STL 的代码从广义上讲分为三类:algorithm(算法、container(容器)和 iterator(迭 、的STL100for_each将为指定序列中的每一 STL头文件中最大的一个(尽管它很好理解,它是由一大堆模版函数组成的,可以认为每算的模板函数,包括加法和乘法在序列上的一些操作。2的代码,这些代码都十分相似,只是为了适应不同数据的变化而在细节上有所出入。 向量列表双队列集合栈队列列表双队列集合栈队列3STL STL 中用来将算法和容器联系起来,起着一种黏STL 提供的所有算法都是通过迭代器存取元素序列进行工作的,每一个STL 中的几个模板的 , 2. 2. O(1 随3. 对list随3.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西南交通大学《数据结构与算法》2021-2022学年第一学期期末试卷
- 2024年01月11110工程地质期末试题答案
- 西昌学院《素描基础》2021-2022学年第一学期期末试卷
- 西北大学《健康教育与健康促进》2023-2024学年第一学期期末试卷
- 《计算机系统的硬》课件
- 《财务监督》课件
- 智研咨询发布-2025年中国民办大学行业市场运行态势及发展趋势预测报告
- 山东电网计算机专业面试题
- 《全面预算管理介绍》课件
- 电商设计电子课件
- 阀盖零件的机械加工工艺设计规范流程和夹具设计.docx
- 云南白药公司近三年财报分析
- 五年级家长会英语老师发言(课堂PPT)
- 深度学习数学案例(课堂PPT)
- hp设备巡检报告
- 卧式钻床液压系统设计课件
- 水库维修养护工程施工合同协议书范本
- 铁路防护栅栏施工组织设计方案最终
- 塑胶材料的特性
- 高处作业教案(共47页)
- MS培养基及配制注意事项
评论
0/150
提交评论