C++ 失效三元算子

C++ 失效三元算子,c++,googletest,conditional-operator,C++,Googletest,Conditional Operator,我有一个三元运算符,它总是返回true: int waitingTime = 0; int awayPeriodThreshold = 5; bool myOperator= 0? (waitingTime < awayPeriodThreshold) : 1; 它总是失败,因为myOperator总是正确的,即使在开始时等待时间为0,AwayPeriod阈值为5 我怎样才能解决这个问题 非常感谢你的帮助 bool myOperator= 0? (waitingTime < aw

我有一个三元运算符,它总是返回true:

int waitingTime = 0;
int awayPeriodThreshold = 5;

bool myOperator= 0? (waitingTime < awayPeriodThreshold) : 1;
它总是失败,因为myOperator总是正确的,即使在开始时等待时间为0,AwayPeriod阈值为5

我怎样才能解决这个问题

非常感谢你的帮助

bool myOperator= 0? (waitingTime < awayPeriodThreshold) : 1;
因为
0
始终被视为false

C++中的三元运算是指<代码>条件?为真时的值:为假时的值

因此,你应该这样写:

int myOperator= (waitingTime < awayPeriodThreshold) ? 0 : 1;

只是检查一下情况

因为
0
始终被视为false

C++中的三元运算是指<代码>条件?为真时的值:为假时的值

因此,你应该这样写:

int myOperator= (waitingTime < awayPeriodThreshold) ? 0 : 1;


只需检查条件。

看起来您是从Python中了解到三元运算符的?如果是这样的话,我建议你忘掉你从Python学到的一切,学习C++,就像它是你的第一语言一样。这比尝试在这两种语言之间进行比较要容易得多。看起来你是从Python中得到关于三元运算符的想法的?如果是这样的话,我建议你忘掉你从Python学到的一切,学习C++,就像它是你的第一语言一样。这比试图在这两种语言之间画出相似之处要容易得多。非常感谢,我设计得太过了,没有意识到它可以这么简单。回答接受的时间限制尚未结束,但我将很快接受您的回答,再次感谢您。@mechatrk抱歉,
bool myOperator=(waitingTime将给出与问题中指定的相反的结果。修正了。最后一个可以不用(多余的括号)写。非常感谢,我设计得太过了,没有意识到它可以这么简单。回答接受的时间限制尚未结束,但我将很快接受您的回答,再次感谢您。@mechatrk抱歉,
bool myOperator=(waitingTime将给出与问题中指定的相反的结果。修正。最后一个可以不用(多余的括号)写。
int myOperator= (waitingTime < awayPeriodThreshold) ? 0 : 1;
bool myOperator = !(waitingTime < awayPeriodThreshold);
bool myOperator = (waitingTime >= awayPeriodThreshold);