第14周实践项目1——排序函数模板
来源:互联网 发布:优行科技 知乎 编辑:程序博客网 时间:2024/06/10 02:36
/**Copyright (c) 2016,烟台大学计算机学院*All rights reserved.*文件名称 :*作 者 : 刘云*完成日期 : 2016年5月31号*版 本 号 : v6.0**问题描述 : 实践项目1*输入描述 : 是一个函数模板的两个实例,其功能是将数组a中的前size个元素按从小到大顺序排列*程序输出 :*/#include<iostream>using namespace std;template<class T>void Sort(T a[],int size){ int i,j,t; for(i=0;i<size;i++) for(j=i+1;j<size;j++) { if(a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } }}int main(){ int i; int a[10]={4,3,2,1,0,5,6,7,8}; for(i=0;i<9;i++) cout<<a[i]<<'\t'; cout<<endl; Sort(a,5); for(i=0;i<9;i++) cout<<a[i]<<'\t'; return 0;}
运行结果:
心得:
(2)类模板定义
定义一个类模板,一般有两方面的内容:
A .首先要定义类,其格式为:
template
<
class
T>
class
foo
{
……
}
foo 为类名,在类定义体中,如采用通用数据类型的成员,函数参数的前面需加上T,其中通用类型T可以作为普通成员变量的类型,还可以作为const和static成员变量以及成员函数的参数和返回类型之用
template
<
class
T>
class
Test{
private
:
T n;
const
T i;
static
T cnt;
public
:
Test():i(0){}
Test(T k);
~Test(){}
void
print();
T operator+(T x);
};
B. 在类定义体外定义成员函数时,若此成员函数中有模板参数存在,则除了需要和一般类的体外定义成员函数一样的定义外,还需在函数体外进行模板声明
如果函数是以通用类型为返回类型,则要在函数名前的类名后缀上"<T>"
C. 在类定义体外初始化const成员和static成员变量的做法和普通类体外初始化const成员和static成员变量的做法基本上是一样的,唯一的区别是需再对模板进行声明,例如
template
<
class
T>
int
Test<T>::cnt=0;
template
<
class
T>
Test<T>::Test(T k):i(k){n=k;cnt++;}
0 0
- 第14周实践项目1——排序函数模板
- 第14周项目1—排序函数模板
- 第14周项目-排序函数模板
- 第14周-项目1-排序函数模板
- 第14周项目1-排序函数模板
- 第14周项目1:排序函数模板
- 第14周项目1-排序函数模板
- 第14周项目1--排序函数模板
- 第14周项目1 排序函数模板
- 第14周项目1-排序函数模板
- C++第14周项目模板【项目1-排序函数模板】
- 第14周项目一排序函数模板
- 第十四周实践项目1————排序函数模板
- 第十四周上机实践——项目1-排序函数模板
- 第14周实践项目2(1)——两个成员的类模板
- 第十四周实践项目1-排序函数模板
- 第14周实践项目2(2)——两个成员的类模板
- 第14周实践项目3——数组类模板
- linux centos下搭建git服务器运行环境
- Android的ArrayAdapter
- C++ STL 基础及应用(4) 输出输出流
- Fragment基本应用
- docker 通过Dockerfile build image
- 第14周实践项目1——排序函数模板
- hdu2648 shopping(map应用)
- log4j:WARN No appenders could be found for logger (org.quartz.simpl.SimpleThreadPool)
- 冒泡排序算法及其优化
- finished with non-zero exit value 3
- 深入浅出Mybatis系列(五)---TypeHandler简介及配置(mybatis源码篇)
- 【Linux运维入门】PSSH-轻量集群管理工具
- 一个简单的词法分析器
- 解决android系统唤醒时间偏长------healthd里的一些调用