无法理解堆栈实现的isEmpty函数中的return语句

舞蹈

我的堆栈中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语句的情况下执行其任务

Angew不再为SO感到骄傲

top == -1是一个表达。假设不涉及运算符重载,则其返回类型为booltrue如果top等于-1它将具有值;如果false不是,它将具有该值

return top == -1;表示“返回表达式的值top == -1”。如上所示,该值为truefalse这些与从-if()代码返回的值完全一致,因此这两个代码是等效的。

在我的代码中,我倾向于在“语法异常”返回语句周围使用括号,并且我认为==其中之一。所以我会在我的代码中写这个(我当然会比if版本更喜欢):

return (top == -1);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法理解 Python 中的函数参数

来自分类Dev

无法理解此if语句

来自分类Dev

无法理解堆栈跟踪MVC .NET

来自分类Dev

无法理解函数重载

来自分类Dev

无法理解sortedlinklist函数

来自分类Dev

我无法理解Python中的函数比较

来自分类Dev

无法理解在C ++中此函数的返回

来自分类Dev

无法理解 C++ 中的函数指针

来自分类Dev

无法理解反应组件中带有@ 符号的函数

来自分类Dev

无法理解 boost python 函数导出中的语法

来自分类Dev

无法理解Java语句的定义

来自分类Dev

无法理解Java语句的定义

来自分类Dev

无法理解std :: move的实现

来自分类Dev

无法理解 !! 在 Linux 中

来自分类Dev

无法理解当一个return语句必须用于有关的递归

来自分类Dev

无法理解代码/函数调用

来自分类Dev

无法理解递归函数的输出。

来自分类Dev

无法理解Calendar类的before函数

来自分类Dev

无法理解python嵌套函数

来自分类Dev

无法理解特定种类的Kotlin函数

来自分类Dev

无法理解如何调用此函数

来自分类Dev

无法理解递归函数的输出。

来自分类Dev

无法理解构造函数

来自分类Dev

无法理解代码/函数调用

来自分类Dev

无法理解树遍历递归函数

来自分类Dev

无法理解函数行为-isprime()

来自分类Dev

无法理解Calendar类的before函数

来自分类Dev

无法理解函数输出 (C)

来自分类Dev

Javascript - 无法理解函数括号