DenseGraph迭代器中index设为0
来源:7-3 相邻结点迭代器
慕雪菜狗
2022-02-08
波波老师好,我将DenseGraph迭代器中index设为0和-1分别测试了两次发现结果其实没有变化。请问这是一个偶然想象还是,设置为0和-1都可以其实。
class adjIterator
{
public:
adjIterator(denseGraph &graph, int v) :m_G(graph)
{
m_nnode = v;
m_nindex = 0; //-1
}
int begin()
{
m_nindex = 0; //-1
return next();
}
int next()
{
for (m_nindex++; m_nindex < m_G.getV(); m_nindex++)
{
if (m_G.m_vecg[m_nnode][m_nindex])
{
return m_nindex;
}
}
return -1;
}
写回答
1回答
-
初始需要是 -1。因为在 begin() 中会调用 next,在 next 中 m_nindex 会直接 ++。初始是 -1 才能保证 m_nindex 是从 0 开始查看的,否则将跳过 0,从 1 开始查看。
继续加油!:)
032022-02-09
相似问题