我很好奇 Boost 是否提供优先队列实现,它也支持在时间 O(log n) 中查找元素?
我可以通过使用 Boost Fibonacci 堆来实现此功能,并将句柄及其索引一起存储在 std::map 中,并在堆插入时更新此信息,但我希望有一个已经提供此功能的堆版本.
注意:我删除了我之前版本的问题,因为它太模棱两可了。
最佳答案
如果您不介意在空间和插入时间上有(相当大的?)开销,您可以在此处使用多索引容器。
作为一个想法,下面是一个使用 Boost Multi-Index 在 Boost Asio 之上实现事件对象模式的优先级队列的示例:
需要注意的是,Multi-Index 允许您在同一容器上指定任意数量的二级/辅助索引
关于c++ - Boost:支持在 O(log n) 时间内查找元素的优先级队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24397466/