下载此文档

模板与数据结构C程序设计第吴乃陵.ppt


文档分类:IT计算机 | 页数:约72页 举报非法文档有奖
1/72
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/72 下载此文档
文档列表 文档介绍
第六章模板与数据结构
模板——建立与数据类型无关的通用算法
利用模板建立表,描述排序与查找的算渎。

问题:若有如下需求
void minot
int max (int, int, int)I
int a, b. c:
double
double x, y, z
max( double, double, double) K
char s1[20],s2[20],s
char* max(char, char, char))
∥/读入数据
cout<<max(a, b, c)<<ena
cout<<max(x, y, z/<<endl
cout<<max (s1, s2, s3)<<endl
通用
如何完成此要求?
重载
棋板
参教化程序设计:
通用的代码就必须不受教据类型的限制,可以把教
据类型改为一个设计参数。这种类型的程序设计称为参
数化程序设计。
模板:包括函数模板和类模板。

函数模板:创建一个通用函教,支持多种不同类型形参。
函数模板定义
template<模板参数表>返回类型函数名(形式参数表)
;}∥函教体
注:尖括号中不能为空,参数可以有多个,用逗号分开
重载函数
nt max(int a, int b, int c);
double max(double x, doulbe y, double z):
char amax(char ssl, char ss2, char *s3);
函数模板
template<typename T>
T max(T a, tb, tc
模板——数据类型参教化,实现通用性
对教组求最大值的函数棋板:
template<typename t>
T maxt a[l, int n
模板的使用——模板实倒化( template instantiation)
inta5; double d[10; string S{20};…;/数据輪入
int i=max(a, 5);
显式调用:
int j=max(d, 10);
i=max<int>(a, 5);
int k=max(s, 20);
=max<double>(d, 10);
k=max<string>(s, 20);
【】用函数模板求数组元素中最大值
template <typename T>
T max(const T*r_ array,int size
int
max_val=r arraylo];
for (i=1; i<size; ++i
if(r_array [i]>max_ val)
max val=r_ arrayli];
return max val:
}
类型参数T在程序运行中会被各种基本类型或用户定义类型置换
模板参数表的使用与函数形式参教表的使用相同,都是位置对
应。类型和值的置换过程称为模板实例化。形参size表示 r array
数组的长度。
ntia[5]={10,7,143,25}
double da6]={,71,,,168}
string sa[5]="上海"’"北京"’"沈阳";"广州","武汉"};
int maino i
inti=max(a,5);∥隐式显示
cout<<"整数最火值为:"<≤i<<end
double d=max(da,6);∥隐式星示
cout<<"实数最大值为:"<<d<<endl;
string s:=max(sa,5);∥隐式显示
cout<<"字典排序录大为
:"<<s<<end;
return 0:
也可以显式指定
i=max<int>(ia, 5)
d=max<double>(da, 6)
函数模板与棋板函数:
在main(Q函教中,由调用函教模板而生成的函数,
称为模板函教。这两个概念须分清楚
函数模板的声明:
注:函教声明可以不加参数名(编译过程不检查参数名)
void inverse(int, int, int int)
函数模板的声明必须含变量名。编过程中,函数模板
必须先转换为棋板函数。
template <typename T1, typename T2>
void inverse (t1 *mat1, t2*mat2 int a int b)
【例62】矩阵运算:矩阵转置与矩阵相乘函数模板
下标作为参教传递。。
该实例作为自学内容
多维数组作为函数参教的方法有三种
第一种是函数的形参定义为多

模板与数据结构C程序设计第吴乃陵 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数72
  • 收藏数0 收藏
  • 顶次数0
  • 上传人erterye
  • 文件大小9.15 MB
  • 时间2021-01-27