设计一个类模板,实现任意类型数组的排序(升序),至少包括整型、字符、字符串类型。
时间: 2024-03-14 07:47:17 浏览: 91
基于插入排序方法的类模板设计与实现.doc
好的,这是一个模板类的示例代码,可以实现对任意类型数组的排序(升序):
```c++
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
template <typename T>
class ArraySorter {
public:
static void sort(T arr[], int len) {
std::sort(arr, arr+len);
}
};
int main() {
int intArr[] = {5, 2, 9, 1, 8};
ArraySorter<int>::sort(intArr, 5);
for (int i = 0; i < 5; ++i) {
cout << intArr[i] << " ";
}
cout << endl;
char charArr[] = {'a', 'c', 'e', 'b', 'd'};
ArraySorter<char>::sort(charArr, 5);
for (int i = 0; i < 5; ++i) {
cout << charArr[i] << " ";
}
cout << endl;
string strArr[] = {"apple", "banana", "orange", "lemon", "grape"};
ArraySorter<string>::sort(strArr, 5);
for (int i = 0; i < 5; ++i) {
cout << strArr[i] << " ";
}
cout << endl;
return 0;
}
```
在这里,我们使用了 STL 中的 sort 函数来对数组进行排序,只需要传入数组指针和数组长度即可。由于我们要实现任意类型的数组排序,所以这里使用了模板类,其中 sort 函数是静态的,可以直接通过类名调用。在 main 函数中,我们分别定义了三个不同类型的数组,通过 ArraySorter 对象来进行排序。
阅读全文