gpt4 book ai didi

c++ - 无法理解堆栈实现的 isEmpty 函数中的返回语句

转载 作者:太空狗 更新时间:2023-10-29 20:39:22 25 4
gpt4 key购买 nike

我的堆栈中有 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。如果 top 等于 -1,它将具有值 true,如果不是这种情况,它将具有值 false

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

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

return (top == -1);

关于c++ - 无法理解堆栈实现的 isEmpty 函数中的返回语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27898343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com