gpt4 book ai didi

c++ - 在 if 语句的条件 block 中调用 boolean 方法?

转载 作者:行者123 更新时间:2023-11-28 07:41:49 24 4
gpt4 key购买 nike

我正在定义一个使用列表类的模板类的函数。

我在这个列表类中定义了erase函数,如果删除成功则返回true,如果删除失败则返回false,我在这里要做的就是调用这个函数。

但是,我需要计算列表的大小 n,并且我只想在 list.erase(itr.list_iter) 调用返回 true 时递减它。

更简洁地说,下面的代码行是否会调用 list.erase(itr.list_iter) 函数并递减 n 并仅在成功时调用 refresh()?或者它实际上并没有删除列表中的元素?

void erase(iterator itr) {
if(list.erase(itr.list_iter)) {
--n;
refresh();
}
}

非常感谢。

最佳答案

是的,你可以。它总是会被调用。它相当于:

{
bool res = foo();
if(res)
{
do_stuff();
}
}

您甚至可以在 if 中声明变量:

if(int res = int_foo())
{
do_smth(res);
}
else // res == 0
{
do_smth_else();
}

这在每本书中都有写 =)

关于c++ - 在 if 语句的条件 block 中调用 boolean 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15702967/

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