第14周项目1-排序函数模板

来源:互联网 发布:pkpm软件 编辑:程序博客网 时间:2024/06/03 04:09

问题及代码:

/**copyright (t) 2016,烟台大学计算机学院*All rights reserved.*文件名称:test.cpp*作者:张晴晴*完成日期:2016年6月11日*版本号:v1.0*问题描述:【项目-排序函数模板】 已知void Sort(int a[],int size);void Sort(double a[],int size);是一个函数模板的两个实例,其功能是将数组a中的前size个元素按从小到大顺序排列。试设计这个函数模板。*输入描述:数字数组*程序输出:对数字数组里的数字排序*/#include<iostream>using namespace std;template<class T>void Sort(T a[],int n){    int i,j;    T temp;    for(i=1;i<n;i++)//这个地方还不知道size是多少呢    {        for(j=n-1;j>=i;j--)        {         if(a[j-1]>a[j])         {             temp=a[j-1];             a[j-1]=a[j];             a[j]=temp;         }        }    }}int main(){    int i;    int a[]= {4,5,2,8,9,3};    double b[]= {3.5, 6.7, 2, 5.2, 9.2, 10.3};    Sort(a,6);    Sort(b,6);    for(i=0; i<6; i++)        cout<<a[i]<<"  ";    cout<<endl;    for(i=0; i<6; i++)        cout<<b[i]<<"  ";    cout<<endl;    return 0;}

运行结果:


学习心得:

开始想定义一个模板在主函数中,想着不用说明是什么对象直接向里面输入一串字符自己比较就好,结果发现没办法实现。

因为在主函数中不说明什么类型根本无法输入,计算机无法识别啊,

或许可以说,在主函数中,template 是无法作用的,template是适用于主函数给出特定类型在进行对应转变的函数。

0 0