Reputation: 525
How can I determine the largest number among three numbers using C++?
I need to simplify this
w=(z>((x>y)?x:y)?z:((x>y)?x:y));
Conditionals do not simplify this.
Upvotes: 4
Views: 1111
Reputation: 41220
A variant on oisyn's answer (use an initializer list) and Bathesheba's answer (invoke no copies) is to use std::ref
to create an initializer list of references, and then use std::max
normally:
using std::ref;
w = std::max({ref(x), ref(y), ref(z)});
This is only advantageous if creating a reference is cheaper than creating a copy (and it isn't for primitives like int
)
Upvotes: 0
Reputation: 10085
Use the simple if
condition
int w = x;
if(y > w)
w = y;
if(z > w)
w = z;
Where w
is the max among three.
Upvotes: 0