设计重载函数,实现对n个数据的排序。要求:使用整型、字符串、实型三种类型、不同数量的数据进行测试。
时间: 2023-05-19 16:02:28 浏览: 66
可以使用模板函数来实现重载函数,以下是示例代码:
```cpp
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
template<typename T>
void sortData(std::vector<T>& data) {
std::sort(data.begin(), data.end());
}
template<>
void sortData<std::string>(std::vector<std::string>& data) {
std::sort(data.begin(), data.end(), [](const std::string& a, const std::string& b) {
return a.length() < b.length();
});
}
template<>
void sortData<double>(std::vector<double>& data) {
std::sort(data.begin(), data.end(), [](double a, double b) {
return a < b;
});
}
int main() {
std::vector<int> intData = { 3, 1, 4, 1, 5, 9, 2, 6, 5 };
sortData(intData);
for (auto i : intData) {
std::cout << i << " ";
}
std::cout << std::endl;
std::vector<std::string> strData = { "hello", "world", "this", "is", "a", "test" };
sortData(strData);
for (auto s : strData) {
std::cout << s << " ";
}
std::cout << std::endl;
std::vector<double> doubleData = { 3.14, 2.71, 1.41, 1.61 };
sortData(doubleData);
for (auto d : doubleData) {
std::cout << d << " ";
}
std::cout << std::endl;
return 0;
}
```
这个程序定义了三个模板函数,分别用于排序整型、字符串和实型数据。对于字符串数据,使用字符串长度作为排序依据;对于实型数据,使用数值大小作为排序依据。在主函数中,我们分别测试了不同类型和数量的数据。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)