设计小程序演示及验证缺省值参数的函数、函数重载、函数模板的使用,要求给出排序Sort函数模板
时间: 2023-05-24 11:01:13 浏览: 55
C知道: 你好,对于您提出的问题,我可以回答。
在C++中,函数重载是指在同一作用域内,通过参数类型、顺序或个数的不同,定义多个名称相同但参数不同的函数。函数重载增加了函数的多样性,提高了代码的复用性和可读性。
在下面的示例中,我们使用参数缺省值、函数重载和函数模板实现排序Sort函数模板。
```cpp
#include <iostream>
using namespace std;
//函数重载,实现两数交换
template <typename T>
void Swap(T& a, T& b)
{
T tmp = a;
a = b;
b = tmp;
}
//函数模板,实现冒泡排序
template <typename T>
void Sort(T* arr, int len)
{
for(int i = 0; i < len; i++)
{
for(int j = len - 1; j > i; j--)
{
if(arr[j] < arr[j-1])
{
Swap(arr[j], arr[j-1]);
}
}
}
}
//排序Sort函数模板,带默认值参数
template <typename T, int len = 10>
void Sort(T* arr)
{
Sort(arr, len);
}
int main()
{
int arr[] = {3, 9, 2, 8, 1};
//使用默认值参数,排序前10个元素
Sort(arr);
for(int i = 0; i < 5; i++)
{
cout << arr[i] << " ";
}
cout << endl;
float brr[] = {3.1, 9.2, 2.3, 8.4, 1.5};
//重载实现排序
Sort(brr, 5);
for(int i = 0; i < 5; i++)
{
cout << brr[i] << " ";
}
cout << endl;
return 0;
}
```
在上面的示例中,我们定义了一个包含默认值参数的Sort函数模板,可以实现对数组前len个元素的排序。同时,我们还定义了函数重载的Swap函数模板,用于实现两个数交换。最后在main函数中,我们实现了对两个不同类型的数组的排序。