#include<iostream>
using namespace std;
//实现选择排序对通用数组进行排序
//规则 从大到小
//用int和char进行测试
template<class T>//交换模板
void myswap(T& a, T& b) {
T temp;
temp = a;
a = b;
b = temp;
}
template<typename T>//排序模板
void mysort(T arr[],int len) {
for (int i = 0; i < len; i++) {
int max = i;
for (int j = i + 1; j < len; j++) {
if (arr[j] > arr[max]) {
max = j;
}
}
if (i != max) {
myswap(arr[i], arr[max]);
}
}
}
template<class T>//提供打印数组模板
void printarry(T a[],int len) {
for (int i = 0; i < len; i++) {
cout << a[i] << " " ;
}
cout << endl;
}
void test1() {
//char 类型数组测试
char b[] = { 'a','b','e','c','d'};//也可以用char b[] = "a,c,e,c,d"
int num = sizeof(b) / sizeof(char);
mysort(b, num);
printarry(b, num);
}
void test2() {
//int 类型数组测试
int c[] = {1,2,3,4,5,6,8,7,9 };//也可以用char b[] = "a,c,e,c,d"
int num = sizeof(c) / sizeof(int);
mysort(c, num);
printarry(c, num);
}
int main() {
test1();
test2();
system("pause");
return 0;
}
//模板的目的是提高复用性 将类型参数化
c++函数模板实现通用数组排序
最新推荐文章于 2022-09-12 21:44:25 发布