设计一个类模板,实现任意类型数组的排序(升序),至少包括整型、字符、字符串类型。 输入 每组数据首先输入数组的长度n,由整型表示,之后顺序输入数组的元素。 共输入三组数据,分别为整型、字符、字符串类型。 输出 输出三组数据升序排序之后的结果。 样例输入 10 12 6 32 1 -2 19 345 0 -9 30 8 b u % 9 G Q a V 5 nankai university tianjin asd asdd 样例输出 -9 -2 0 1 6 12 19 30 32 345 % 9 G Q V a b u asd asdd nankai tianjin university 提示 不需要实现循环输入; 不需要考虑n和数组实际输入的元素个数不同的情况。
时间: 2024-02-25 10:52:30 浏览: 163
基于数组模板类的排序操作
好的,以下是类模板的实现代码:
```cpp
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
template<typename T>
class SortArray {
public:
SortArray(int size) {
arr = new T[size];
this->size = size;
}
~SortArray() {
delete[] arr;
}
void input() {
for (int i = 0; i < size; i++) {
cin >> arr[i];
}
}
void sort() {
std::sort(arr, arr + size);
}
void output() {
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
private:
T* arr;
int size;
};
int main() {
int n;
// 整型数组
cin >> n;
SortArray<int> intArray(n);
intArray.input();
intArray.sort();
intArray.output();
// 字符数组
cin >> n;
SortArray<char> charArray(n);
charArray.input();
charArray.sort();
charArray.output();
// 字符串数组
cin >> n;
SortArray<string> strArray(n);
strArray.input();
strArray.sort();
strArray.output();
return 0;
}
```
可以通过对输入的数据类型进行模板化,来实现对不同类型数组的排序。在模板类中,使用了动态分配内存来存储数组,并实现了输入、排序、输出三个方法来完成对数组的操作。在主函数中,实例化了三个不同类型的 SortArray 对象,并分别进行了输入、排序、输出的操作。
阅读全文