<分区>
下面两段代码有区别吗?
if(x==4)
{
}
和
if(4 == x)
{
}
如果是的话对性能有什么大的影响吗?
标签 c++
<分区>
下面两段代码有区别吗?
if(x==4)
{
}
和
if(4 == x)
{
}
如果是的话对性能有什么大的影响吗?
最佳答案
有区别吗?是的;如果比较中涉及的类型之一是用户定义的,则该类型的编写者可以使他们的 operator==
重载不可交换。
但是,这样的代码应该被认为是行为不端的。用户期望相等性测试是可交换的。在 C++20 中,编写交换相等性测试比编写非交换相等性测试要容易得多。
因此,虽然编译器不会阻止您,但可以合理安全地假设相等性测试是可交换的。
关于c++ - 在 if 条件下对左右变化值的相等性检查是否有任何区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51232651/