gpt4 book ai didi

C++ 我在设置我创建的类的优先级队列时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-04 11:55:29 26 4
gpt4 key购买 nike

我正在尝试为我创建的名为 Event 的类设置优先级队列。在我尝试此操作之前的 2 行中,我设置了 2 个其他优先级队列,它们似乎工作正常,但在第 3 个队列中出现错误。有什么建议吗?

class Event{
enum eventType { Arrival, CPUburstCompletion, IOcompletion, TimerExpired };
double time; // Defined as time units since the start of the simulation
};

vector<process> processTable;
int CPU;
int IO;
priority_queue< int, vector<int> > readyQueue;
priority_queue< int, vector<int> > IO_Queue;
priority_queue< Event, vector<Event> > eventQueue;

我的事件类中没有比较器函数。我把它放进去了,但我仍然遇到错误。我是不是没把比较器写对?

class Event{
enum eventType { Arrival, CPUburstCompletion, IOcompletion, TimerExpired };
double time; // Defined as time units since the start of the simulation
bool operator()(Event& e1, Event& e2){
if (e1.time < e2.time){
return true;
}
else{
return false;
}
}
};

vector<process> processTable;
int CPU;
int IO;
priority_queue< int, vector<int> > readyQueue;
priority_queue< int, vector<int> > IO_Queue;
priority_queue< Event, vector<Event> > eventQueue;

最佳答案

您需要在 Event 类中或作为优先级队列的模板参数定义一个比较运算符。

class Event{
...
public:
bool operator<(const Event &other) const {return time < other.time;}
};

关于C++ 我在设置我创建的类的优先级队列时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16311932/

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