8、掌握函数模版与函数重载。 编写一个函数模板,它返回两个值中的较小者,同时要求能正确比较字符串(字符串比 较按字典序判断)。提示:为了能正确处理字符串,可以添加一个重载函数专门处理字符串比 较
时间: 2024-04-16 07:27:04 浏览: 42
好的,我明白了你的问题。下面是一个示例代码,演示如何使用函数模板和函数重载来比较两个值中的较小者,同时正确比较字符串(按字典序):
```cpp
#include <iostream>
#include <string>
template <typename T>
T min(T a, T b) {
return (a < b) ? a : b;
}
// 重载版本用于比较字符串
std::string min(const std::string& a, const std::string& b) {
return (a < b) ? a : b;
}
int main() {
int int1 = 5, int2 = 10;
std::cout << "min(int1, int2): " << min(int1, int2) << std::endl;
double double1 = 3.14, double2 = 2.71;
std::cout << "min(double1, double2): " << min(double1, double2) << std::endl;
std::string str1 = "apple", str2 = "banana";
std::cout << "min(str1, str2): " << min(str1, str2) << std::endl;
return 0;
}
```
这个示例中,我们定义了一个函数模板 `min`,它接受两个参数并返回其中较小的值。`min` 函数使用了 `<` 运算符进行比较。
为了正确处理字符串比较,我们还定义了一个重载版本的 `min` 函数,它专门用于比较字符串。这个重载版本接受两个 `const std::string&` 类型的参数,并使用 `<` 运算符按字典序比较字符串。
在 `main` 函数中,我们演示了如何使用这个函数模板和重载函数来比较不同类型的值。输出结果将会是:
```
min(int1, int2): 5
min(double1, double2): 2.71
min(str1, str2): apple
```
希望这个示例能够帮助你理解函数模板和函数重载的用法。如果有任何问题,请随时提问。