gpt4 book ai didi

C++ STL优先级队列构造函数

转载 作者:太空宇宙 更新时间:2023-11-03 10:32:06 25 4
gpt4 key购买 nike

我编写了以下代码来接收许多输入,然后按特定顺序输出它们。

#DEFINE cases 100     

struct job
{
int w;
};

class compjob
{
public:
bool operator()( job j1,job j2)
{
if(j2.w>j1.w)
return true;

return false;
}
};

int main()
{
priority_queue< job, vector<job>, compjob > jobs;

int weight;



for(int i=1;i<=cases;i++)
{
cin>>weight;
job job1;
job1.w=weight;

jobs.push(job1);
} //for loop ends here


for(int i=1;i<=cases;i++)
{
job job1= jobs.pop(); ////////////ERROR!!!!!/////////
cout<<job1.w<<endl;
}

return 0;;
}

但是当我编译代码时,上面标记的行显示编译错误:

Invalid conversion from 'void' to non scalar 'job'.

我认为我没有正确声明作业 priority_queue。另外,请解释声明中第二个参数的意义(即vector,我真的不知道它的用途)

最佳答案

pop不返回任何东西,使用 top首先获取元素,然后将其弹出。

关于C++ STL优先级队列构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13950722/

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