gpt4 book ai didi

c++ - 如何创建节点结构类型的 Min STL priority_queue

转载 作者:搜寻专家 更新时间:2023-10-31 00:16:36 24 4
gpt4 key购买 nike

struct node
{
node *right;
node *left;
int data;
};

这是我的结构节点。现在我正在使用 STL 优先级队列来提取最小值,即像这样从优先级队列中提取最小值

    std::priority_queue<node*, std::vector<node*>, std::greater<node*> > mypq;

但我没有得到最小值并用谷歌搜索,我发现(更大),它用于整数,我得到了另一个答案,我是这样实现的

 struct compare  
{
bool operator()(const node*& l, const node*& r)
{
return l > r;
}
};

我是这样用的

  std::priority_queue<node*, std::vector<node*>,compare > mypq;

但它显示错误我很沮丧,请任何人帮助我

最佳答案

比较函数应该有两个参数,它们是优先级队列中元素的类型。你的元素类型是node*,所以你的函数应该定义为bool operator()(node* l, node* r)。现在,您可以在考虑这一点的情况下编写比较函数:

struct compare  
{
bool operator()(node* l, node* r)
{
return l->data > r->data;
}
};

关于c++ - 如何创建节点结构类型的 Min STL priority_queue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15643319/

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