int a = 1;
int b = 2;
int c = 3;
int d = 4;
我如何确定最大整数值是否存储在变量 d
中?
int a = 1;
int b = 2;
int c = 3;
int d = 4;
我如何确定最大整数值是否存储在变量 d
中?
您需要使用 array
而不是这些变量,然后您可以轻松找到最大元素。请参阅示例 here
您可以按照以下方式执行
#include <iostream>
#include <algorithm>
int main()
{
int a = 1;
int b = 2;
int c = 3;
int d = 4;
if ( std::max( { a, b, c, d } ) == d )
{
std::cout << "d contains the maximum equal to " << d << std::endl;
}
}
程序输出是
d contains the maximum equal to 4
您可以应用一个变异模板:
#include <iostream>
template <typename T, typename U, typename ... Args>
T& max_ref(T&, U&, Args& ... );
template <typename T, typename U>
T& max_ref(T& t, U& u) {
return t < u ? u : t;
}
template <typename T, typename U, typename ... Args>
T& max_ref(T& t, U& u, Args& ... args) {
return max_ref(t < u ? u : t, args ...);
}
int main()
{
int a = 1;
int b = 2;
int c = 3;
int d = 4;
max_ref(a, b, c, d) = 42;
std::cout << d << 'n';
}
注意:您将不会获得最大值的变量,只有对变量(匿名)的引用。
使用数组(而不是单个变量),并将阵列索引报告为“答案”