设计一个类模板,实现任意类型数组的排序(升序),至少包括整型、字符、字符串类型。
时间: 2024-03-04 12:49:05 浏览: 62
好的,我来设计一个类模板来实现任意类型数组的排序(升序):
```c++
template<typename T>
class ArraySorter{
public:
// 构造函数
ArraySorter(T arr[], int size):m_arr(arr),m_size(size){}
// 排序函数
void sort(){
for(int i=0;i<m_size-1;i++){
for(int j=i+1;j<m_size;j++){
if(m_arr[i]>m_arr[j]){
T temp=m_arr[i];
m_arr[i]=m_arr[j];
m_arr[j]=temp;
}
}
}
}
// 打印排序后的数组
void print(){
for(int i=0;i<m_size;i++){
cout<<m_arr[i]<<" ";
}
cout<<endl;
}
private:
T* m_arr; // 数组指针
int m_size; // 数组大小
};
```
我们可以使用这个类模板来实现任意类型数组的排序,示例代码如下:
```c++
int main() {
int arr1[]={5,3,1,4,2};
char arr2[]={'e','a','c','d','b'};
string arr3[]={"hello","world","chit","gpt"};
ArraySorter<int> sorter1(arr1,5);
ArraySorter<char> sorter2(arr2,5);
ArraySorter<string> sorter3(arr3,4);
sorter1.sort();
sorter2.sort();
sorter3.sort();
sorter1.print();
sorter2.print();
sorter3.print();
return 0;
}
```
输出结果:
```
1 2 3 4 5
a b c d e
chit gpt hello world
```
我们可以看到,使用这个类模板可以方便地实现任意类型数组的排序。
阅读全文