使用函数模板实现任意类型的数组的降序排序。
时间: 2023-11-28 16:51:04 浏览: 66
以下是使用函数模板实现任意类型的数组降序排序的示例代码:
```c++
#include <iostream>
#include <algorithm>
template<typename T>
void sort_desc(T arr[], int size)
{
std::sort(arr, arr + size, [](T a, T b) { return a > b; });
}
int main()
{
// 测试 int 类型数组排序
int arr1[] = { 5, 3, 8, 4, 2 };
int size1 = sizeof(arr1) / sizeof(arr1[0]);
sort_desc(arr1, size1);
for (int i = 0; i < size1; i++) {
std::cout << arr1[i] << " ";
}
std::cout << std::endl;
// 测试 double 类型数组排序
double arr2[] = { 1.2, 3.4, 0.5, 2.1, 7.8 };
int size2 = sizeof(arr2) / sizeof(arr2[0]);
sort_desc(arr2, size2);
for (int i = 0; i < size2; i++) {
std::cout << arr2[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
输出:
```
8 5 4 3 2
7.8 3.4 2.1 1.2 0.5
```
以上代码中,`sort_desc` 函数模板接收一个任意类型的数组和数组大小作为参数,使用 `std::sort` 函数进行排序,排序规则为降序。其中,`[](T a, T b) { return a > b; }` 表示排序规则,也就是比较函数,用于判断两个元素之间的大小关系。在 `main` 函数中,我们测试了 int 和 double 两种类型的数组排序。
阅读全文