c++利用函数模板将不同数据类型的数排序
函数模板的格式:
#include <iostream>
#include <string>
using namespace std;
template<typename T>
void sort(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 n1,n2,n3; int arr1[100], i; float arr2[100]; string arr3[100];
cin >> n1;
for (i = 0; i < n1; i++)
{
cin >> arr1[i];//输入整型数据存入数组
}
cin >> n2;
for (i = 0; i < n2; i++)
{
cin >> arr2[i];//输入浮点型数据存入数组
}
cin >> n3;
for (i = 0; i < n3; i++)
{
cin >> arr3[i];//输入字符型数据存入数组
}
sort(arr1, n1);
sort(arr2, n2);
sort(arr3, n3);
for (i = 0; i < n1; i++)
{
cout << arr1[i] << " ";
}
cout << endl;
for (i = 0; i < n2; i++)
{
cout << arr2[i] << " ";
}
cout << endl;
for (i = 0; i < n3; i++)
{
cout << arr3[i] << " ";
}
cout << endl;
return 0;
}
运行结果: