使用C ++确定三个数字中的最大数字

时间:2017-11-21 13:36:09

标签: c++

如何使用C ++确定三个数字中的最大数字?

我需要简化这个

 w=(z>((x>y)?x:y)?z:((x>y)?x:y));

条件不会简化这一点。

5 个答案:

答案 0 :(得分:18)

从C ++ 11开始,你可以做到

w = std::max({ x, y, z });

答案 1 :(得分:8)

w = std::max(std::max(x, y), z);

是一种方式。

答案 2 :(得分:2)

big = a> b? (a> c?a:c):( b> c?b:c);

答案 3 :(得分:0)

使用简单的if条件

int w = x;

if(y > w)
  w = y;
if(z > w)
  w = z;

其中w是三者之中的最大值。

答案 4 :(得分:0)

oisyn's answer上的变体(使用初始化列表)和Bathesheba's answer(不调用副本)是使用std::ref创建引用的初始化列表,然后使用{{1通常:

std::max

如果创建引用比创建副本便宜(并且不适用于using std::ref; w = std::max({ref(x), ref(y), ref(z)}); 这样的原语),这是有利的。

Demo