还是不太懂为什么这个index为什么刚开始要等于-1

来源:7-3 相邻结点迭代器

Joseph731

2018-06-23

写回答

1回答

liuyubobobo

2018-06-24

在我们的DenseGraph的邻接节点迭代器中,begin()里将直接调用next()的返回值作为结果。因为next()中index要进行加1操作,所以为了让begin()的返回结果是从0开始搜索的结果,初始的index赋值为-1:)


不妨使用一个小的测试数据集(课程中从第4小节给出的测试数据就足够小),根据真实的数据实际debug一下,跟到程序中去,看看如果index初始为0会出什么问题?将index的初始值附为-1是怎么解决这个问题的?


另外,index也可以初始设置为0,不过这样,我们的begin()逻辑就要更改了。想想看应该怎么改?改完以后,再回头看看这两种写法,仔细比较一下他们的区别?:)


相信做完这些,你对这段迭代器代码的逻辑,将印象深刻,同时,编程水平一定会有所提高哦。如果对于学习的程序中每个细节都这样翻来覆去的尝试,思考,未来你就是大牛!


加油!

2
0

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程