在作上述代码的基础上,增加以下功能: 用函数重载的方法,让计算方差的函数支持不同的数据类型 用函数模板的方法,实现排序函数,并进行调用
时间: 2024-02-18 13:06:20 浏览: 82
Python精讲Numpy基础,大牛笔记详细解释.docx
好的,以下是对应的代码实现:
1. 使用函数重载实现支持不同数据类型的方差计算函数
```cpp
double calcVariance(int arr[], int size) {
double sum = 0, avg = 0, avgSquare = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
avg = sum / size;
for (int i = 0; i < size; i++) {
avgSquare += pow(arr[i] - avg, 2);
}
return avgSquare / size;
}
double calcVariance(double arr[], int size) {
double sum = 0, avg = 0, avgSquare = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
avg = sum / size;
for (int i = 0; i < size; i++) {
avgSquare += pow(arr[i] - avg, 2);
}
return avgSquare / size;
}
```
2. 使用函数模板实现排序函数
```cpp
template<typename T>
void sortArray(T arr[], int size) {
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
T temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
调用排序函数示例:
```cpp
int arr[] = {3, 7, 2, 1, 5};
double arr2[] = {3.2, 6.4, 1.5, 4.3, 7.1};
sortArray(arr, 5);
sortArray(arr2, 5);
```
注意:这里使用了函数模板,需要在使用时指定对应的数据类型。如果想要支持自定义的数据类型,需要保证该类型支持比较运算符重载。
阅读全文