What is the easiest way to compare multiple variable to see if they are all the same value? For example if var1 = 53 and I want to check if var2 or var3 is equal to var1 and each other? So far I have done this:
if(row1==row2==row3==row4==col1==col2==col3==col4==diag1==diag2)
cout << "It is a magic square";
else
cout << "Not a magic square";
However this doesn't seem to work. Thanks for you help.
In C++11, you could use variadic templates to define your own function:
#include <iostream>
template<typename T, typename U>
bool all_equal(T&& t, U&& u)
{
return (t == u);
}
template<typename T, typename U, typename... Ts>
bool all_equal(T&& t, U&& u, Ts&&... args)
{
return (t == u) && all_equal(u, std::forward<Ts>(args)...);
}
int main()
{
int x = 42;
int y = 42
std::cout << all_equal(42, y, x);
}
You can't chain ==
operators like that. You would need to write, e.g.
if (row1==row2 && row2==row3 && row3==row4 && ...)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With