gpt4 book ai didi

c++ - 我将如何使用此优先级队列弹出和推送?

转载 作者:行者123 更新时间:2023-11-28 08:14:31 25 4
gpt4 key购买 nike

我正在尝试对优先级队列中的作业使用推送和弹出。我该怎么做?我很好奇如何实现这个?

class Job
{
public:
int job_id;
string job_description;
int n_procs;
int n_ticks;


Job(int job_id, string job_description, int n_procs, int n_ticks);
Job(void);
~Job(void);
};



typedef vector<Job> Jobs;
typedef priority_queue<Job, Jobs, less<Job>> JobQueue;

最佳答案

priority queue class提供访问队列中元素的基本操作:

  • void std::priority_queue::push(const T &) : 将给定对象插入优先级队列。
  • const T &std::priority_queue::top() const : 返回“顶部”元素。
  • void std::priority_queue::pop(); : 删除“顶部”元素。

只需替换 Job对于 T .

顺便说一句:

I have not overloaded the < operator. I think the less just makes it the priority queue in decending order

在不知道如何比较它们的情况下,它如何知道什么是“降序”?全部std::less做的就是调用任何operator<你已经定义了。如果您还没有定义 operator< , 然后 std::less无法工作。

关于c++ - 我将如何使用此优先级队列弹出和推送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8089810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com