用函数重载的方法,让计算方差的函数支持不同的数据类型;用函数模板的方法,实现排序函数,并进行调用
时间: 2024-02-18 21:03:44 浏览: 72
使用函数模板进行排序
好的,我来为您解答。
1. 用函数重载的方法,让计算方差的函数支持不同的数据类型。
函数重载是指在同一作用域内,函数名称相同但参数列表不同的多个函数,可以根据传入的参数类型自动匹配调用不同的函数。在计算方差的函数中,我们可以定义多个不同参数类型的函数实现。
下面是一个简单的示例代码:
```c++
#include <iostream>
using namespace std;
// 计算整型数组的方差
double variance(int arr[], int len) {
double sum = 0, mean, variance = 0;
for (int i = 0; i < len; i++) {
sum += arr[i];
}
mean = sum / len;
for (int i = 0; i < len; i++) {
variance += pow(arr[i] - mean, 2);
}
return variance / len;
}
// 计算浮点型数组的方差
double variance(double arr[], int len) {
double sum = 0, mean, variance = 0;
for (int i = 0; i < len; i++) {
sum += arr[i];
}
mean = sum / len;
for (int i = 0; i < len; i++) {
variance += pow(arr[i] - mean, 2);
}
return variance / len;
}
int main() {
int arr1[] = {1, 2, 3, 4, 5};
double arr2[] = {1.5, 2.5, 3.5, 4.5, 5.5};
int len1 = sizeof(arr1) / sizeof(arr1[0]);
int len2 = sizeof(arr2) / sizeof(arr2[0]);
cout << "整型数组的方差为:" << variance(arr1, len1) << endl;
cout << "浮点型数组的方差为:" << variance(arr2, len2) << endl;
return 0;
}
```
2. 用函数模板的方法,实现排序函数,并进行调用。
函数模板是一种通用的函数定义,可以用来定义多个不同类型的函数。在排序函数中,我们可以使用函数模板实现。
下面是一个简单的示例代码:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
// 声明函数模板
template <typename T>
void mySort(T arr[], int len) {
sort(arr, arr + len);
}
int main() {
int arr1[] = {5, 4, 3, 2, 1};
double arr2[] = {5.5, 4.5, 3.5, 2.5, 1.5};
int len1 = sizeof(arr1) / sizeof(arr1[0]);
int len2 = sizeof(arr2) / sizeof(arr2[0]);
mySort(arr1, len1);
mySort(arr2, len2);
cout << "整型数组排序结果为:";
for (int i = 0; i < len1; i++) {
cout << arr1[i] << " ";
}
cout << endl;
cout << "浮点型数组排序结果为:";
for (int i = 0; i < len2; i++) {
cout << arr2[i] << " ";
}
cout << endl;
return 0;
}
```
以上就是我的回答,希望能够对您有所帮助。
阅读全文