当前位置: 首页 > 知识库问答 >
问题:

定义优先级队列

柳鸿博
2023-03-14

考虑下面的优先级类声明<代码>类优先级队列

我的想法:
我能想到的一件事是,这将强制优先级队列使用对象比较器,并且不会提供实现其自定义比较器的能力,因为类的用户可能希望基于某个不同的比较器构建队列。

共有1个答案

童华池
2023-03-14

考虑下面的优先级类优先级队列的声明

如果要将一个对象放入队列中,而该对象未实现可比接口,该怎么办。

没有必要限制放置对象必须实现可比接口,这样更加灵活。

对于同一个对象,不同场景下比较的逻辑可能不一致,所以需要从外部传入一个比较器,对象本身不需要实现一个比较器

(以上是我个人的想法)

 类似资料:
  • priority_queue,comparator(query,d)>min_heap; main.cpp:20:7:注意:“comparator”不是文字,因为: class comparator{ main.cpp:20:7:注意:“comparator”不是聚合,没有普通的默认构造函数,也没有不是复制或移动构造函数的constexpr构造函数 Main.cpp:92:65:注意:应为类型,但

  • 我需要一个优先级队列,它首先获得具有最高优先级值的项目。我当前正在使用队列库中的PriorityQueue类。但是,这个函数只先返回值最小的项。我尝试了一些很难看的解决方案,比如(sys.maxint-priority)作为优先级,但我只是想知道是否存在更优雅的解决方案。

  • 使用自定义运算符声明这样的优先级队列时出错 错误- ^/代码/解决方案。cpp:33:32:错误:在“,”令牌优先级_队列(间隔、向量、比较1)p之前应为主表达式; ^/代码/解决方案。cpp:33:49:错误:在“,”令牌优先级_队列(间隔、向量、比较1)p之前应为主表达式^ /code/Solution.cpp:33: 58:错误:预期的主表达式之前')'令牌priority_queue(区间

  • 注意:我知道可以用比较器创建优先级队列,然后重复调用Add。

  • 优先级队列(Priority Queue) 注:队列是一种特征为FIFO的数据结构,每次从队列中取出的是最早加入队列中的元素。但是,许多应用需要另一种队列,每次从队列中取出的应是具有最高优先权的元素,这种队列就是优先级队列(Priority Queue),也称为优先权队列。 1. 优先级队列的概念 1.1 优先级队列的定义 优先级队列是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优

  • 我使用的是PriorityQueue和我自己的比较器,但最终结果并不总是好的。我应该按平均成绩、姓名、身份证进行排序。最后,它应该返回队列中剩余的名称。其余的名字都很好,但顺序不同。输入(名称、平均等级、识别号): 预期产出: 我的结果: 你能帮我找出问题所在吗?提前谢谢你!