看看这函数模版错在哪了?

来源:百度知道 编辑:UC知道 时间:2024/05/16 20:10:21
#include<iostream>
#include<stdlib.h>
using namespace std;
template <typename T>;
void sort(T *);
int n;
int main()
{int i;
cout<<"输入n:"<<endl;
cin>>n;

cout<<"输入int类n个元素:"<<endl;
for(i=0;i<n;i++)
cin>>p[i];
cout<<"输入float类n个元素:"<<endl;
for(i=0;i<n;i++)
cin>>p[i];
cout<<"输入double类n个元素:"<<endl;
for(i=0;i<n;i++)
cin>>p[i];
sort(p);
delete []p;
return 0;
}
void sort(T *cp)
{
int i,j;
int temp;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
{
if(cp[j]>cp[j+1])
{temp=cp[j];
cp[j]=cp[j+1];
cp[j+1]=temp;}
}
for(i=0;i<n;i++)
cout<<cp[i]<<" ";
cout<<endl;
}

这是改过之后的代码
1、模板函数声明好像要带参数名

2、p数组未定义

3、还有改的其他的忘了,对照着看看吧

#include<iostream>
#include<stdlib.h>
using namespace std;
template <typename T>
void mysort(T *cp);
int n;
int main()
{int i;
cout<<"输入n:"<<endl;
cin>>n;
int *p=new int[n+1];
cout<<"输入int类n个元素:"<<endl;
for(i=0;i<n;i++)
cin>>p[i];
cout<<"输入float类n个元素:"<<endl;
for(i=0;i<n;i++)
cin>>p[i];
cout<<"输入double类n个元素:"<<endl;
for(i=0;i<n;i++)
cin>>p[i];
mysort(p);
delete []p;
return 0;
}
template <typename T>
void mysort(T *cp)
{
int i,j;
T temp;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
{
if(cp[j]>cp[j+1])
{temp=cp[j];
cp[j]=cp[j+1];
cp[j+1]=temp;}