gpt4 book ai didi

c++ - C++ 中的 BFS 实现

转载 作者:行者123 更新时间:2023-11-28 08:01:48 25 4
gpt4 key购买 nike

我尝试用一​​个邻接表来实现 BFS 算法,该邻接表是用一个 vector 数组实现的。我从 1 而不是 0 开始存储输入。

编辑:我更新了代码:http://ideone.com/GZwPP现在它编译并运行了,但是当我尝试搜索不在图中的节点时,出现此错误:

terminate called after throwing an instance of 'std::out_of_range'
what(): vector::_M_range_check
Aborted

最佳答案

这个错误真的很微妙。你的代码中有:

for(i = 1; i <= adj[front].size() - 1 && adj[front].at(0) != 0; i++)

size() 是什么类型?它是一个无符号类型。所以当 size() == 0size() - 1 > 0 因为 arithmetic overflow .您应该将行更改为:

for(i = 1; i < adj[front].size() && adj[front].at(0) != 0; i++)

关于c++ - C++ 中的 BFS 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11250793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com