可能重复:
如何检查多个变量是否等于同一个值?
有没有办法写这个:
if ((var1==var2) && (var2==var3) && (var3==var4) ...)
变成这样的东西
if (var1==var2==var3==var4 ...)
?
可能重复:
如何检查多个变量是否等于同一个值?
有没有办法写这个:
if ((var1==var2) && (var2==var3) && (var3==var4) ...)
变成这样的东西
if (var1==var2==var3==var4 ...)
?
在 C++11 中,您可以编写一组函数,如下所示:
template<typename T>
bool all_equal(T const &)
{
return true;
}
template<typename T, typename U, typename... Args>
bool all_equal(T const & a, U const & b, Args const&... c)
{
return a==b && all_equal(b,c...);
}
int main()
{
std::cout << all_equal(1,2,3) << '\n';
std::cout << all_equal(1,1,1) << '\n';
}
编辑:我猜史蒂夫杰索普在这里链接的副本有同样的想法
没有比这更清楚的方式,不。您可以在 a 中插入值set
并检查 if size == 1
,但是您现在拥有的是要走的路。
本质上,没有。
如果您有一个集合,而不仅仅是零星变量,则可以应用算法来检查它们是否都相等,即O(N)
它们是否确实相等(就像您的长语句一样)并且当它找到一个时会立即中断不是。