题目描述 设计一个类模板,实现任意类型数组的排序(升序),至少包括整型、字符、字符串类型。 输入 每组数据首先输入数组的长度n,由整型表示,之后顺序输入数组的元素。 共输入三组数据,分别为整型、字符、字符串类型。 输出 输出三组数据升序排序之后的结果。
时间: 2024-03-04 10:49:01 浏览: 34
好的,这里是一个完整的实现,包括输入和输出:
```c++
#include <iostream>
#include <string>
template <typename T>
void sortArray(T arr[], int size)
{
for (int i = 0; i < size - 1; ++i)
{
for (int j = i + 1; j < size; ++j)
{
if (arr[i] > arr[j])
{
T temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
int main()
{
int n;
std::cin >> n;
int* intArr = new int[n];
for (int i = 0; i < n; ++i)
{
std::cin >> intArr[i];
}
sortArray(intArr, n);
for (int i = 0; i < n; ++i)
{
std::cout << intArr[i] << " ";
}
std::cout << std::endl;
delete[] intArr;
char* charArr = new char[n];
for (int i = 0; i < n; ++i)
{
std::cin >> charArr[i];
}
sortArray(charArr, n);
for (int i = 0; i < n; ++i)
{
std::cout << charArr[i] << " ";
}
std::cout << std::endl;
delete[] charArr;
std::string* strArr = new std::string[n];
for (int i = 0; i < n; ++i)
{
std::cin >> strArr[i];
}
sortArray(strArr, n);
for (int i = 0; i < n; ++i)
{
std::cout << strArr[i] << " ";
}
std::cout << std::endl;
delete[] strArr;
return 0;
}
```
这里采用了动态内存分配,以便支持任意长度的数组。每组数据首先输入数组的长度n,然后输入数组的元素,最后对每组数据进行排序并输出。