设计一个类模板,实现任意类型数组的排序(升序),至少包括整型、字符、字符串类型。
时间: 2024-03-13 17:48:16 浏览: 110
好的,我可以帮你设计一个类模板,可以实现任意类型的数组排序(升序)。以下是示例代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
template <typename T>
class ArraySorter {
public:
void sort(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 intArr[] = { 3, 1, 4, 2, 5 };
char charArr[] = { 'c', 'a', 'b', 'e', 'd' };
string strArr[] = { "ccc", "aaa", "bbb", "eee", "ddd" };
ArraySorter<int> intSorter;
intSorter.sort(intArr, 5);
cout << "Sorted int array: ";
for (int i = 0; i < 5; i++) {
cout << intArr[i] << " ";
}
cout << endl;
ArraySorter<char> charSorter;
charSorter.sort(charArr, 5);
cout << "Sorted char array: ";
for (int i = 0; i < 5; i++) {
cout << charArr[i] << " ";
}
cout << endl;
ArraySorter<string> strSorter;
strSorter.sort(strArr, 5);
cout << "Sorted string array: ";
for (int i = 0; i < 5; i++) {
cout << strArr[i] << " ";
}
cout << endl;
return 0;
}
```
在这个类模板中,我们定义了一个 `sort` 函数来对数组进行排序。该函数使用了简单的冒泡排序算法,可以对任何类型的数组进行排序。在 `main` 函数中,我们创建了三个不同类型的数组,使用 `ArraySorter` 类对它们进行了排序,并输出了排序后的结果。
需要注意的是,当对字符串类型的数组进行排序时,我们使用了字符串比较函数 `operator>` 来进行比较。这是因为 C++ 内置的 `operator>` 操作符并不能直接比较两个字符串的大小。
阅读全文