)编写函数模板minimum,其功能是从两个或三个任意相同类型的数据中返回最小值。在主函数中分别使用不同类型的数据(整型、实型、字符型和const char *,)测试函数模板的正确性。说明:const char * 应该按字符串的
时间: 2024-02-09 12:10:21 浏览: 116
字典序进行比较。
以下是实现函数模板minimum的示例代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
template<typename T>
T minimum(T a, T b) {
return a < b ? a : b;
}
template<typename T>
T minimum(T a, T b, T c) {
return minimum(minimum(a, b), c);
}
template<>
const char* minimum<const char*>(const char* a, const char* b) {
return strcmp(a, b) < 0 ? a : b;
}
int main() {
int a = 3, b = 4;
float c = 1.2, d = 3.4;
char e = 'a', f = 'z';
const char* str1 = "apple";
const char* str2 = "banana";
const char* str3 = "orange";
cout << minimum(a, b) << endl;
cout << minimum(c, d) << endl;
cout << minimum(e, f) << endl;
cout << minimum(str1, str2) << endl;
cout << minimum(str2, str3) << endl;
cout << minimum(str1, str2, str3) << endl;
return 0;
}
```
上述代码中,使用了函数模板的重载和特化。对于两个参数的情况,使用了普通的函数模板;对于三个参数的情况,使用了递归调用。对于const char*类型的参数,使用了特化的函数模板,并使用了strcmp进行字符串比较。
在主函数中,分别测试了不同类型的数据,并输出了最小值。
阅读全文