编写一个函数模版,使用冒泡排序将数组内容由小到大排列并打印出来,并写出调用此函数 //模版的完整程序,使得函数调用时,数组的类型可以是整数也可以是双精度型。
#include<iostream>
using namespace std;
template<typename t>
class paixu
{
t* set;
int n;
public:
paixu(t* data,int m):set(data),n(m){}
void sort();
};
template<typename t>
void paixu<t>::sort()
{
t temp;
for(int i=1;i<n;i++)
for(int j=1;j<=n-j;j++)
if(set[j]>set[j+1])
{
temp=set[j];
set[j]=set[j+1];
set[j+1]=temp;
}
for(int j=0;j<n;j++)
cout<<set[j]<<" ";
cout<<endl;
}
int main()
{
int a[]={1,3,2,7,5,9};
double b[]={6.6,9.9,7.7,8.8,4.4,2.2};
paixu<int>p1(a,6);
p1.sort();
paixu<double> p2(b,6);
p2.sort();
char c[]={'a','c','r','b'};
paixu<char>p3(c,4);
p3.sort();
return 0;
}
为什么double型的就是不行,我是在vs2008里面编译的
[解决办法]
楼主,排序写错了,这两句对应改一下:
for(int i=0;i<n;i++)
for(int j=0;j<n-1;j++)
[解决办法]
for(int i=0;i<n;i++)for(int j=0;j<n-1;j++)