编写一个C++程序,用同一个函数名对n个数据进行从小到大排序,数据类型可以是整型、单精度型、双精度型。用重载函数实现。
时间: 2024-09-23 13:16:23 浏览: 78
在C++中,为了能够使用同一个函数名称对不同类型的数值进行排序,我们可以利用模板和重载(Overload)函数。下面是一个简单的例子,展示了如何编写一个名为`sort`的函数,用于对整型(int), 单精度(float)和双精度(double)类型的数组进行排序:
```cpp
#include <algorithm> // 包含sort算法
// 定义通用排序函数,接受任意类型的数组
template<typename T>
void sortArray(T arr[], int n) {
std::sort(arr, arr + n); // 使用标准库提供的sort函数,自动处理不同类型
}
// 重载函数的具体实例
void sortArray(int arr[], int n) {
// 对整型数组进行排序,这里省略实际的比较操作
}
void sortArray(float arr[], int n) {
// 对单精度数组进行排序,同样省略实际的比较操作
}
void sortArray(double arr[], int n) {
// 对双精度数组进行排序,这里也是一样
}
int main() {
int intArr[] = {5, 2, 8, 1};
float floatArr[] = {4.5f, 0.7f, 3.2f, 9.1f};
double doubleArr[] = {3.14, 2.71, 1.618, 1e3};
int size = sizeof(intArr) / sizeof(intArr[0]);
sortArray(intArr, size);
sortArray(floatArr, size);
sortArray(doubleArr, size);
return 0;
}
```
在这个例子中,`sortArray`函数是模板函数,通过`typename T`接收任意类型的数组,并调用了`std::sort`进行排序。然后分别针对整型、浮点数和双精度数提供了具体的函数实例。
阅读全文