我发现了《C++ Primer题解》的一个小程序的bug

iamwh iamwh 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
第五章 练习5.19(99页)
写出一个count()函数

里面有 while(i=find(value,i)){
i=i->next();
cnt++;
}

这是利用链表的find()函数统计一个值在链表中出现的次数,find()的第二个参数是一个 list_item*指针,默认是0,如果是0,则从链表的起始位置开始查找,否则从i开始查找

但是如果要查找的链表项正好是链表的最后一项,最后一项的->next()也是0,这样就会又从第一项开始查找,这样程序就会陷入死循环

解决方法是这样:
while(i=find(value,i)){
i=i->next();
cnt++;
if(!i)break;
}

我说的对不对呀? :)
...全文

相关推荐

评论 15
收藏 已收藏
分享
返回顶部
iamwh
C++ 语言 65,214 成员 250,514 内容