题:编写具有排序功能的类模板SortableArray,该类模板是实现对整型数组,浮点型数组,字符型数组元素的升序排序
#include<iostream>
#include<string>
using namespace std;
template<typename T>//模板类
class SortableArray
{
public:
T element[10];
int index;
SortableArray(T a[], int);
void sort();//排序
void printArray();//输出
};
template<typename T>
SortableArray<T>::SortableArray(T a[],int len)
{
index = len;
for (int i = 0; i < len; i++)
{
element[i] = a[i];
}
}
template<typename T>
void SortableArray<T>::sort()
{
int listSize = index;
for (int i = 0; i < listSize; i++)
{
T currentMin = element[i];
int currentMinIndex = i;
for (int j = i + 1; j < listSize; j++)
{
if (currentMin > element[j])
{
currentMin = element[j];
currentMinIndex = j;
}
}
if (currentMinIndex != i)
{
element[currentMinIndex] = element[i];
element[i] = currentMin;
}
}
}//升序排序
template<typename T>
void SortableArray<T>::printArray()
{
for (int i = 0; i < index; i++)
{
cout << element[i] << " ";
}
cout << endl;
}
int main()
{
int list1[] = { 3, 5, 1, 0, 2, 8, 7 };
SortableArray<int> sortableArray1(list1, 7);
sortableArray1.sort();
sortableArray1.printArray();
double list2[] = { 3.5, 0.5, 1.4, 0.4, 2.5, 1.8, 4.7 };
SortableArray<double> sortableArray2(list2,7);
sortableArray2.sort();
sortableArray2.printArray();
string list3[] = { "D", "C", "b" ,"a"};
SortableArray<string> sortableArray3(list3,4);
sortableArray3.sort();
sortableArray3.printArray();
return 0;
}