如果删除,如何返回 true,如果不使用 bool,则返回 false
How to return true if deleted and false if not with bool
>我有一个程序,我想从链表中删除元素。该函数有效,但我在返回真或假时遇到问题。当列表中没有值时,它会像我希望的那样返回 false,但是当列表不为空并且我尝试删除不在列表中的值时,它会返回 true,我希望它返回 false。
bool list::deleteElement(int element)
{
node *curr, *prev;
prev = NULL;
if (head!=NULL)
{
for (curr=head; curr->item!=element&&curr!=NULL;curr= curr->next)
{
return true;
prev=curr;
}
if (curr!=NULL)
{
if (prev==NULL)
{
head = head->next;
delete curr;
numberofelements--;
}
else
{
prev->next = curr ->next;
delete curr;
}
}
}
return false;
}
return true
后的语句将不会执行。
尝试交换线条。
使用调试器比发布到 StackOverflow 更快。
你的代码中有很多问题:
- 首先不要在 for 循环中返回 true,你永远不会循环!
- 在循环延续测试中,首先针对
NULL
进行测试,在访问item
之前,您应该确保curr
不是NULL
。 - 在
if (curr!=NULL)
末尾返回false
,因为这是元素删除的情况,在每种删除情况下都返回true
。
相关文章:
- 返回时不允许隐式转换
- 为什么返回 NULL 不会破坏函数?
- 为什么在 while 循环中返回表达式不起作用
- 如果不在窗口 10 中声明名为 openCV 的 openCV namedWindow,QT 图像显示将无法正常工作
- 如果不是多个语句,请使用 if 语句
- 如果不包含 pthread,为什么 GCC 的线程标准库实现会抛出异常?
- f 是指向函数的指针,该函数采用 int,并返回指向不带任何内容并返回双精度的函数的指针
- 从 C++ 函数与 Python 函数返回的不一致值用于偏斜正态分布
- C++我们可以取消引用此指针吗?如果是这样,那么如何,如果不是,那为什么?
- 如果不分配内存,我如何能够为变量创建和分配值?
- 如果不初始化结构中的向量,它会自动为空还是具有随机内存位置的值?
- 难以理解为什么返回值不会更新值
- 代码是否有效.如果我想显示第一个元素?如果不是,那么 s.begin() 会返回什么?
- fscanf:如果不返回 EOF,是否可能出现错误或 EOF?
- 如果删除,如何返回 true,如果不使用 bool,则返回 false
- 元函数计算 x^n 并返回整数限制而不溢出(如果不可能)
- 如果不满足"if criteria",默认返回什么?重载下标运算符
- 如何编写一个c++代码,使函数在初始参数为大写时返回true,如果不是,则返回false
- 如果不满足条件,我应该在成员函数中返回什么?
- OpenProcess()返回0,如果不是从VS启动