我发现了《C++ Primer题解》的一个小程序的bug
第五章 练习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;
}
我说的对不对呀? :)
写出一个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;
}
我说的对不对呀? :)
...全文
相关推荐
C++Primer题解 pdf
《C++ Primer题解》是针对C++编程语言学习者的一本重要参考资料,与《C++ Primer(第三版)》相辅相成。
【SpringBoot系列】Springboot 重点知识点最强整理
目录 1、springboot controller 单例 2、Springboot 环境变量配置 3、restful 接口 4、@ResponseBody 和 @RequestBody 的区别 5、@Schedule 6、async异步调用 7、request 的获取方式和线程安全 1、springboot controller 单例 Spring中 controller默认是单例的,因为单例所以不是线程安全的。 所以需要注意下面几点 不要在Controller中定义成员变量,可
C++ Primer及题解
总之,《C++ Primer》是一本全面且深入的C++教程,涵盖了从基础到高级的各个层面,结合题解,能为读者提供一个完整的学习路径。
C++ Primer 题解 中文版_C++_
《C++ Primer 题解 中文版》是C++初学者及进阶者的一份宝贵资源,它针对《C++ Primer》这本书中的各种练习题目提供了详尽的解答,旨在帮助读者更好地理解和应用C++语言的核心概念。
C++ Primer 3完美中文版及题解
《C++ Primer 3完美中文版及题解》是一份全面深入学习C++编程语言的资源,涵盖了C++ Primer 第三版的详细内容,并且配有题解,旨在为学习者提供一套完整的学习流程。


