使用函数模板求任意类型的两个数中的大者。
时间: 2024-02-13 21:01:53 浏览: 73
可以使用函数模板实现求任意类型的两个数中的大者,示例代码如下:
```cpp
#include<iostream>
using namespace std;
template<typename T>
T max(T a, T b){
return a > b ? a : b;
}
int main(){
int a = 10, b = 20;
double c = 3.14, d = 2.718;
cout << "max(a, b) = " << max(a, b) << endl;
cout << "max(c, d) = " << max(c, d) << endl;
return 0;
}
```
在上面的代码中,我们定义了一个函数模板 `max`,它有两个参数 `a` 和 `b`,返回值类型为模板类型 `T`,用于比较两个数中的大者,然后在 `main` 函数中分别传入 `int` 和 `double` 类型的变量,输出它们的最大值。
输出结果为:
```
max(a, b) = 20
max(c, d) = 3.14
```
相关问题
使用函数模板求任意类型的两个数中的大者
以下是使用函数模板实现求任意类型的两个数中的大者的示例代码:
```cpp
template<typename T>
T max(T a, T b)
{
return (a > b) ? a : b;
}
```
在上述代码中,`typename` 关键字用于指定类型参数 `T` 是一个类型,而不是其他非类型参数。函数模板 `max` 接受两个类型为 `T` 的输入参数 `a` 和 `b`,并返回它们中的大者。
下面是一个使用该函数模板的示例:
```cpp
int main()
{
int a = 3, b = 5;
cout << max(a, b) << endl; // 输出 5
double c = 2.5, d = 1.5;
cout << max(c, d) << endl; // 输出 2.5
string e = "hello", f = "world";
cout << max(e, f) << endl; // 输出 world
return 0;
}
```
在上述示例中,我们分别使用了整型、双精度浮点型和字符串类型作为函数模板 `max` 的输入参数,并得到了它们中的大者的输出结果。
利用函数重载求任意类型两个数中的大数
可以定义一个函数模板,利用函数重载实现求任意类型两个数中的大数。具体实现如下:
```c++
template<typename T>
T max(T a, T b) {
return a > b ? a : b;
}
int max(int a, int b) {
return a > b ? a : b;
}
double max(double a, double b) {
return a > b ? a : b;
}
// 使用示例
int a = 3, b = 5;
double c = 2.5, d = 4.8;
char e = 'a', f = 'b';
cout << max(a, b) << endl; // 输出 5
cout << max(c, d) << endl; // 输出 4.8
cout << max(e, f) << endl; // 输出 b
```
这样,我们就可以使用函数模板 `max` 来求任意类型两个数中的大数了。如果传入的参数是整型或浮点型,会调用对应的函数重载,如果传入的参数是其他类型,会调用函数模板。
阅读全文