案例描述:
利用函式模板封裝一個排序的函式,可以對不同資料型別陣列進行排序
排序規則從大到小,排序演算法為選擇排序
分別利用char陣列和int陣列進行測試
示例:
點選檢視程式碼
```cpp
#include <iostream>
using namespace std;
//實現通用 對陣列進行排序的函式
//規則 從大到小
//演算法 選擇
//測試 char 陣列、int陣列
//交換函式模板
template<typename T>
void mySwap(T &a,T &b)
{
T 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++)
{
//認定的最大值比遍歷出的數值要小,說明j下標的元素才是真正的最大值
if (arr[max]<arr[j])
{
max=j;
}
}
if (max!=i)
{
//交換max和i元素
mySwap(arr[max],arr[i]);
}
}
}
//提供一個列印陣列的模板
template<class T>
void printArray(T arr[],int len)
{
for (int i = 0; i < len; i++)
{
cout<<arr[i]<<" ";
}
cout<<endl;
}
void test02()
{
//測試int陣列
int intArr[]={1,7,5,3,6,2};
int num=sizeof(intArr)/sizeof(int);
mySort(intArr,num);
printArray(intArr,num);
}
void test01()
{
//測試char陣列
char charArr[]="badcfe";
int num=sizeof(charArr)/sizeof(char);
mySort(charArr,num);
printArray(charArr,num);
}
int main()
{
test01();
test02();
return 0;
}
</details>