我的堆栈中有isEmpty()函数。它看起来像下面的样子。
bool Mystack<T>::isEmpty() const //function 1
{
if(top==-1)
return true;
else
return false;
}
我看到了isEmpty()的一些在线代码,我看不懂。以下是代码段。
bool Mystack<T>::isEmpty() const //function 2
{
return top == -1;
}
问题1:这两个功能执行的任务完全相同吗?
问题2:如果是,那么请您解释一下函数2中的语法如何在不使用任何if语句的情况下执行其任务。
top == -1
是一个表达。假设不涉及运算符重载,则其返回类型为bool
。true
如果top
等于-1
,它将具有值;如果false
不是,它将具有该值。
return top == -1;
表示“返回表达式的值top == -1
”。如上所示,该值为true
或false
。这些与从-if()
代码返回的值完全一致,因此这两个代码是等效的。
在我的代码中,我倾向于在“语法异常”返回语句周围使用括号,并且我认为==
其中之一。所以我会在我的代码中写这个(我当然会比if
版本更喜欢):
return (top == -1);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句