gpt4 book ai didi

c++ - 从文件中读取优先级队列 C++

转载 作者:太空狗 更新时间:2023-10-29 22:59:16 25 4
gpt4 key购买 nike

我有一个优先级队列和一个“事件”类,我想从一个名为 agenda.txt 的文件中读取,其中我有:事件的优先级、日期、年份和名称。但是当我从文件中读取时,我只得到第一个元素,我想看到优先级最高的元素。你能帮忙吗?

agenda.txt
9
12.05
2016
meeting
16 13.05
2017
shopping
8 12.09
2056
swimming
60 45.76
2016
work

这是主要的:

int main(){

char filename[50];
ifstream bucky;
cin.getline(filename,50);
bucky.open(filename);
if(!bucky.is_open()){
exit(EXIT_FAILURE);
}
string nume;
int prio;
double data;
int an;
bucky>>prio>>data>>an>>nume;

while(bucky.good()){
cout<<"prioritatea este "<<prio<<" data este "<<data<<" anul este "<<an<<" numele este "<<nume<<" "<<endl;
bucky>>prio>>data>>an>>nume;



priority_queue<Event> q;

q.push(Event(prio,data,an,nume));


cout<< q.top().getEventPriority()<<q.top().getEventData()<<" "<<q.top().getEventAn()<<" "<<q.top().getEventName()<<endl;



system("pause");}}

最佳答案

priority_queue 不知道如何对您的自定义类进行排序。您的类需要覆盖小于运算符,以便 priority_queue 可以按照文本文件中定义的优先级对项目进行排序。一个伪实现看起来像这样:

class Event
{
int Priority;
};
bool operator<(const Event& lhs, const Event& rhs) {return (lhs.Priority < rhs.Priority);}

关于c++ - 从文件中读取优先级队列 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37533537/

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