【问题标题】:How do i remove the element with lowest priority in C++如何删除 C++ 中优先级最低的元素
【发布时间】:2015-03-02 23:47:26
【问题描述】:

我正在开发一个优先级队列扩展队列的程序:

class PQueue: public Queue;

我的 PQueue 列表使用 Queue 的 enqueue 方法入队,但我为 PQueue 创建了一个 dequeue 方法以删除具有最低优先级的项目。不知怎的,我无法实现它。

如果你有一个像 head[2 8 5 9 0 3 9 7]tail 这样的 pQueue,列表将变为 2 8 5 9 3 9 7,将 0 删除并存储在一个变量中以供返回。请帮忙

【问题讨论】:

  • 演示您尝试过的代码在哪里?
  • “我如何删除 C++ 中优先级最低的元素” - 你通常使用pop 来执行此操作。例如,参见priority_queue。您正在使用的Queue 类的文档在哪里?

标签: c++ priority-queue


【解决方案1】:

为此使用std::priority_queue。如果要先弹出最小元素,请使用std::greater而不是std::less作为比较函数对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-09
    • 2019-11-19
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多