【发布时间】:2015-03-10 00:05:57
【问题描述】:
我的堆栈中有 isEmpty() 函数。它看起来像下面这样。
bool Mystack<T>::isEmpty() const //function 1
{
if(top==-1)
return true;
else
return false;
}
我看到了一些 isEmpty() 的在线代码,我无法理解。下面是sn-p。
bool Mystack<T>::isEmpty() const //function 2
{
return top == -1;
}
问题 1:这两个函数是否执行完全相同的任务?
问题 2:如果是,那么有人可以解释一下函数 2 中的语法如何在不使用任何 if 语句的情况下执行其任务。
【问题讨论】:
-
我可以理解这是一个基本问题。但是为什么要投反对票!!!!
-
我强烈建议您阅读有关
==运算符的信息。然后分析指令if(B) return true; else return false;的可能执行路径,寻找bool类型的可能值B。 -
我通常将它与
if语句一起使用,因此永远不会感到困惑。但是在这里我找不到if。 -
当
top == -1为true时,返回true。当它是false时,它返回false。所以直接返回top == -1即可。 -
@tanz 编程在这方面有点像数学。只有两类问题:尚未解决的问题和明显的问题:-)