检查所有变量是否等于c ++中的相同值

use*_*241 7 c++ compare

比较多个变量以查看它们是否都是相同值的最简单方法是什么?例如,如果var1 = 53,我想检查var2或var3是否等于var1和彼此?到目前为止,我已经这样做了:

if(row1==row2==row3==row4==col1==col2==col3==col4==diag1==diag2)
    cout << "It is a magic square";
else
    cout << "Not a magic square";
Run Code Online (Sandbox Code Playgroud)

然而,这似乎不起作用.谢谢你的帮助.

And*_*owl 12

在C++ 11中,您可以使用可变参数模板来定义自己的函数:

#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);
}
Run Code Online (Sandbox Code Playgroud)


Pau*_*l R 4

你不能==像那样连锁运营商。你需要写,例如

if (row1==row2 && row2==row3 && row3==row4 && ...)
Run Code Online (Sandbox Code Playgroud)

  • 好的。你的答案是正确的。我没有看到“row2”与“row1==row2 &amp;&amp; row2==row3”相同 (2认同)