C++ 检查多变量的等式/不等式

C++ 检查多变量的等式/不等式,c++,if-statement,C++,If Statement,假设我们有四个变量:inta,b,c,d。我需要检查他们中是否有两个是相等的 例如:1195为真,但3984和331为假 当然,为此编写if语句需要花费大量时间,不容易阅读,而且很容易出错 写这样的陈述最好的方法是什么?有几种方法 一个是显式检查所有条件。因为有4个变量,所以只需要检查6个条件。这些数字很容易计算 int n = (a == b) + (a == c) + (a == d) + (b == c) + (b == d) + (c == d); 然后检查n是否为1。这是因为布尔值将

假设我们有四个变量:
inta,b,c,d。我需要检查他们中是否有两个是相等的

例如:
1195
为真,但
3984
331
为假

当然,为此编写if语句需要花费大量时间,不容易阅读,而且很容易出错


写这样的陈述最好的方法是什么?

有几种方法

一个是显式检查所有条件。因为有4个变量,所以只需要检查6个条件。这些数字很容易计算

int n = (a == b) + (a == c) + (a == d) + (b == c) + (b == d) + (c == d);
然后检查
n
是否为1。这是因为布尔值将转换为int(值1表示true,0表示false)


另一种可能是将它们全部存储在一个容器中(像一个向量),排序它,然后计算相邻的相同值的数量。

你认为什么是“最好的”?@ 1201-编程警报最快和最短的方式来做它。我猜编写任何代码的最好方法是最简单的,满足指定要求的最简单方法。@user4581301当然,这就是为什么我要求你写一个你能想到的最简单的方法并计时。如果花费的时间少于所需的时间,您就完成了。如果没有,您将转到下一个最复杂的步骤,如果您与第一个步骤“解决方案”相差太远,可能会跳过几个步骤。实际上,对于
n=2
,它也会找到类似
12
的组。对于
n=1
它接受这样的组:
12
@MartinYakuza for
12
n
将等于3,因为
a==b
b==c
a==c
所有
true
对不起,我读错了,它现在为
n=2
向我显示
1122
。我认为
n
需要为1才能显示work@MartinYakuza我同意条件应该是
n==1