首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从"<“运算符派生">”运算符

从"<“运算符派生">”运算符
EN

Stack Overflow用户
提问于 2015-11-17 17:14:03
回答 2查看 111关注 0票数 1

我试图只使用operator>()||!操作符来实现一个||函数。我可以使用==操作符这样做,但我不知道如何消除一个操作数与另一个操作数相等的情况,只使用三个给定的操作符。我是这样做的,不是这样的:

代码语言:javascript
复制
bool operator>(a, b){
    if(!(a < b) || !(a == b){
        return true;
    }
    else{
        return false;
    }
}

到目前为止,我想出的唯一可能就是以某种方式创建一个递归函数。除此之外,还有其他方法可以做到吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-17 17:22:47

a < b当且仅当b > a - as @Kerrek将其简单地放在上面。

代码语言:javascript
复制
bool operator>(a, b){
    if(b < a){
        return true;
    }
    else{
        return false;
    }
}

编辑:,甚至进一步简化,这要归功于下面的@Mokosha

代码语言:javascript
复制
bool operator>(a, b){
    return b < a;
}
票数 3
EN

Stack Overflow用户

发布于 2015-11-17 17:25:26

除了@KerrekSB提出的显而易见的解决方案(这是最好的解决方案,因为它的简单性),作为一种好奇,您还可以使用XNOR运算符从代码中遵循这种方法(请注意,仅使用||运算符是不可能的,因为要定义XOR,您需要||&&运算符-更多的这里):

代码语言:javascript
复制
bool operator>(a, b){
    if(!(a < b) || !(x ^ y){
        return true;
    }
    else{
        return false;
    } 
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33763057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档