c++编写一个函数实现:当传入2个int型实参时可求解2个实参数中的最大值,当传 入3个int型实参时求3个实参数中的最大值。
时间: 2024-09-19 22:10:22 浏览: 32
设计一个函数返回传入的列表中最大和第二大的元素的值。
5星 · 资源好评率100%
在C++中,你可以通过模板和三元运算符(ternary operator)来实现这个功能,下面是一个简单的示例:
```cpp
#include <iostream>
// 函数模板,接受任意数量的整数并返回其中的最大值
template<typename T, typename... Args>
T max(T first, Args... args) {
return std::max(first, max(args...));
}
// 特殊化处理两个和三个参数的情况
template<typename T, typename A, typename B>
T max(T a, A b) {
return a > b ? a : b;
}
template<typename T, typename A, typename B, typename C>
T max(T a, A b, C c) {
return std::max(a, std::max(b, c));
}
int main() {
// 传入两个参数
int a = 5, b = 10;
std::cout << "Max of " << a << " and " << b << " is: " << max(a, b) << std::endl;
// 传入三个参数
int d = 15, e = 7, f = 20;
std::cout << "Max of " << d << ", " << e << ", and " << f << " is: " << max(d, e, f) << std::endl;
return 0;
}
```
在这个例子中,`max`函数首先处理一般情况(接受任意数量的参数),然后通过递归的方式特化了处理两个和三个参数的具体版本。
阅读全文