在我的代码中,我需要这样做:
if (edges[j].ConnectedToNode() != i) //problem line
{
edges.push_back(Edge(i, j, nodes[i].Position(), nodes[j].Position(), distanceToNode));
}
然而,edges[j] 可能还不存在。我如何测试这个以避免和索引超出范围的异常? (这与路径节点有关,本质上如果有一条边连接 j 到 i,我不想添加另一个从 i 到 j 的边。
访问之前edges[j]
检查一下j < edges.size()
.
EDIT:
为了说明马克·兰塞姆的评论:
if (j < edges.size() && edges[j].ConnectedToNode() != i) //problem line
{
edges.push_back(Edge(i, j, nodes[i].Position(), nodes[j].Position(), distanceToNode));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)