设计一个完整的 C++程序定义一个类模板,利用它实现 10个整 数、浮点数和字符的排序,在主函数中定义对象并调用相应成员函数
时间: 2024-03-12 16:47:10 浏览: 127
C++的函数模板和类模板
5星 · 资源好评率100%
好的,以下是一个完整的 C++ 程序定义一个类模板,可以实现整数、浮点数和字符的排序:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
template <typename T>
class Sorter {
public:
Sorter(T* arr, int size) : m_arr(arr), m_size(size) {}
void sort() {
std::sort(m_arr, m_arr + m_size);
}
void print() {
for (int i = 0; i < m_size; i++) {
std::cout << m_arr[i] << " ";
}
std::cout << std::endl;
}
private:
T* m_arr;
int m_size;
};
int main() {
// 整数排序
int intArr[10] = {5, 8, 2, 7, 1, 9, 3, 10, 4, 6};
Sorter<int> intSorter(intArr, 10);
intSorter.sort();
intSorter.print();
// 浮点数排序
float floatArr[10] = {5.2, 8.1, 2.4, 7.6, 1.3, 9.7, 3.8, 10.0, 4.5, 6.9};
Sorter<float> floatSorter(floatArr, 10);
floatSorter.sort();
floatSorter.print();
// 字符排序
char charArr[10] = {'c', 'a', 'e', 'g', 'd', 'b', 'i', 'j', 'f', 'h'};
Sorter<char> charSorter(charArr, 10);
charSorter.sort();
charSorter.print();
return 0;
}
```
在这个程序中,我们定义了一个类模板 `Sorter`,它有一个模板参数 `T`,表示要排序的类型。在类的构造函数中传入一个数组和数组大小,然后在 `sort` 函数中调用 C++ 标准库中的 `std::sort` 函数进行排序,最后在 `print` 函数中打印排序后的结果。
在 `main` 函数中,我们分别定义了三个数组,分别为整数数组、浮点数数组和字符数组,并传入 `Sorter` 类中进行排序和打印。
阅读全文