设计一个类模板,实现任意类型数组的排序(升序),至少包括整型、字符、字符串类型。
时间: 2024-03-12 09:45:57 浏览: 60
好的,我可以为您设计一个类模板来实现任意类型数组的排序,以下是代码示例:
```c++
#include <iostream>
#include <string>
using namespace std;
template<typename T>
class SortArray {
private:
T* arr;
int size;
public:
SortArray(T* a, int s) : arr(a), size(s) {}
void sort() {
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
T temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
void print() {
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
};
int main() {
int intArr[] = { 3, 1, 4, 2, 5 };
SortArray<int> intSort(intArr, 5);
intSort.sort();
intSort.print();
char charArr[] = { 'c', 'a', 'e', 'b', 'd' };
SortArray<char> charSort(charArr, 5);
charSort.sort();
charSort.print();
string stringArr[] = { "hello", "world", "hi", "hey", "bye" };
SortArray<string> stringSort(stringArr, 5);
stringSort.sort();
stringSort.print();
return 0;
}
```
代码中定义了一个类模板 `SortArray`,包含了一个数组和数组大小,以及 `sort` 和 `print` 两个方法。`sort` 方法使用冒泡排序算法对数组进行排序,`print` 方法用于输出数组。
在 `main` 函数中,定义了三个不同类型的数组并传入 `SortArray` 类模板中,分别调用 `sort` 和 `print` 方法进行排序和输出。
阅读全文