还是不太懂为什么这个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()逻辑就要更改了。想想看应该怎么改?改完以后,再回头看看这两种写法,仔细比较一下他们的区别?:)
相信做完这些,你对这段迭代器代码的逻辑,将印象深刻,同时,编程水平一定会有所提高哦。如果对于学习的程序中每个细节都这样翻来覆去的尝试,思考,未来你就是大牛!
加油!
20
相似问题