编写一个函数模板.使用冒泡排序将数组内容由小到大排列并打印出来,并写出调用此函数模板的完整程序,使得函数调用时,数组的类型可以是整型也可以是双精度型。写出这段代码
时间: 2024-03-25 13:39:38 浏览: 174
好的,下面是代码:
```c++
#include <iostream>
using namespace std;
// 冒泡排序函数模板
template <typename T>
void bubbleSort(T arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j+1]) {
T temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
int arr1[] = {4, 2, 6, 3, 1, 5};
double arr2[] = {3.14, 1.68, 2.71, 0.618, 1.41};
// 调用函数模板,对数组进行排序并打印出来
int n1 = sizeof(arr1) / sizeof(arr1[0]);
bubbleSort(arr1, n1);
cout << "排序后的整型数组为:";
for (int i = 0; i < n1; i++) {
cout << arr1[i] << " ";
}
cout << endl;
int n2 = sizeof(arr2) / sizeof(arr2[0]);
bubbleSort(arr2, n2);
cout << "排序后的双精度型数组为:";
for (int i = 0; i < n2; i++) {
cout << arr2[i] << " ";
}
cout << endl;
return 0;
}
```
这里定义了一个函数模板 `bubbleSort`,使用冒泡排序算法对传入的数组进行排序。使用 `typename` 关键字来声明类型参数,使得函数模板可以处理不同类型的数组。
在 `main()` 函数中,我们分别定义了一个整型数组和一个双精度型数组,然后调用 `bubbleSort` 函数模板对它们进行排序,并打印出排序后的结果。
阅读全文