在 A* 操作中,什么时候使用 std::set 比使用 std::vector 和 make_heap/push_/pop_
更有效(w.r.t. 时间)?我的猜测是,如果开放列表中的顶点很小,则使用 vector 是更好的选择。但是有人有这方面的经验吗?
最佳答案
如果我不得不冒险猜测?我猜 vector 版本可能是一个不错的选择,因为一旦它增长到一定大小,就不会有太多的分配。
但我不喜欢猜测。我更喜欢硬数字。两者都试试,个人资料!
关于C++ A *优先级队列的集合与 vector +堆操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/989867/