【问题标题】:C++ STL priority queueC++ STL 优先级队列
【发布时间】:2016-04-13 22:57:53
【问题描述】:

我有一个关于priority_queue 容器适配器的实现的问题。现在,我知道它在内部使用了 push_heap、pop_heap 函数。这是我的问题:

make_heap 利用 heapify 算法在 O(n) 时间内将一个向量变成一个堆。 C++ STL 中的优先级队列是否有类似的 heapify 操作?我所知道的填充priority_queue 的唯一可能方法是手动添加元素。在 C++ STL 中是否还有一种用于优先队列的批量插入方法。我在 C++ 参考页面上找不到任何内容。

【问题讨论】:

  • 只需将向量传递给priority_queue的构造函数即可。
  • 非常感谢。是的,我应该自己解决这个问题。

标签: c++ stl heap priority-queue


【解决方案1】:

为什么不使用 std::priority_queue ?

http://www.cplusplus.com/reference/queue/priority_queue/

它会自动执行所有插入/删除操作。因此,您无需担心将容器保持在优先队列中。

【讨论】:

  • 我只使用 std::priority_queue。我想知道是否有批量插入的方法,因为可以使用 heapify 算法在线性时间内完成批量插入。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-18
  • 2013-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多