. 声明一个类模板,利用它实现10个整数、浮点数和字符的排序。(sy4_5.cpp)
时间: 2024-02-27 07:56:52 浏览: 75
好的,以下是代码:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
template<typename T>
class Sorter {
public:
Sorter(std::initializer_list<T> list) : data(list) {}
void sort() {
std::sort(data.begin(), data.end());
}
void print() {
for (auto i : data) {
std::cout << i << ' ';
}
std::cout << std::endl;
}
private:
std::vector<T> data;
};
int main() {
Sorter<int> intSorter { 5, 3, 8, 1, 6, 7, 2, 4, 9, 0 };
intSorter.sort();
intSorter.print();
Sorter<float> floatSorter { 5.6f, 3.2f, 8.7f, 1.2f, 6.9f, 7.4f, 2.3f, 4.8f, 9.1f, 0.5f };
floatSorter.sort();
floatSorter.print();
Sorter<char> charSorter { 'e', 'c', 'h', 'a', 'f', 'g', 'b', 'd', 'i', 'j' };
charSorter.sort();
charSorter.print();
return 0;
}
```
这段代码定义了一个类模板 `Sorter`,它包含一个存储数据的 `std::vector` 对象,并提供了排序和输出结果的函数。在 `main` 函数中,我们分别使用 `Sorter<int>`、`Sorter<float>` 和 `Sorter<char>` 来实例化这个类模板,并分别传入了一些数据。然后,我们调用 `sort` 函数对数据进行排序,最后通过 `print` 函数输出排序后的结果。需要注意的是,在使用 `std::sort` 算法对不同类型的数据进行排序时,需要保证这些类型支持比较运算符(`<`)的重载。
阅读全文