C++ A *优先级队列的集合与 vector +堆操作

标签 c++ stl containers a-star

在 A* 操作中,什么时候使用 std::set 比使用 std::vector 和 make_heap/push_/pop_ 更有效(w.r.t. 时间)?我的猜测是,如果开放列表中的顶点很小,则使用 vector 是更好的选择。但是有人有这方面的经验吗?

最佳答案

如果我不得不冒险猜测?我猜 vector 版本可能是一个不错的选择,因为一旦它增长到一定大小,就不会有太多的分配。

但我不喜欢猜测。我更喜欢硬数字。两者都试试,个人资料!

关于C++ A *优先级队列的集合与 vector +堆操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/989867/

相关文章:

c++ - std::map 键的最快类型?

c++ - 共享内存和写时复制或右值引用和移动语义?

c++ - std::async 不并行化任务

c++ - 需要对递归有新的看法

c++ - '非标准语法;使用 '&'创建一个指向具有线程的成员的指针

c++ - 如何从 STL 容器中获取只能 move 的类型?

docker - docker 容器是否保留文件更改?

c++ - 在对类型名 T 进行模板化时,T() 是什么意思?

c++ - std::ofstream == NULL 不会为 -std=gnu++11 编译,任何解决方法?

c++ - undefined symbol std::__throw_bad_function_call