priority-queue 相关问题

优先级队列是常规队列或堆栈数据结构,但另外每个元素都具有与之关联的“优先级”。

为什么我的代码中不断收到 Valgrind 设置地址范围权限警告?

我不明白我可能做错了什么,导致不断出现此 valgrind 错误。我没有泄漏任何记忆.. 在我的项目中,我必须实现一个图,一个基本的图算法,并且......

回答 1 投票 0

如何在优先级队列中使用pair,然后使用key作为优先级返回值

所以我想使用最小的键作为优先级,然后返回对应键的VALUE: 导入 javafx.util.Pair; 导入 java.util.PriorityQueue; 公开课测试 { 公共静态

回答 4 投票 0

为什么调用 Java DelayQueue 的 take() 方法不会阻塞所有线程的整个数据结构?

我试图弄清楚 java.util.concurrent.DelayQueue 在多线程环境中如何工作。我看到这个数据结构内部使用了ReentrantLock,而且是一开始就获取的...

回答 1 投票 0

在使用 lambda ex<Pair> 比较 C# 中优先级队列中的两个对象时,出现错误无法将 Generic.Comparer<int> 转换为 Generic.IComparer

我有双人班。 公开课双人 { 公共整数频率; 公共 int 酷时间; 公共对(int freq,int CoolTime) { this.freq = 频率; this.coolTime = CoolTime;...

回答 1 投票 0

如何使用Queue.PriorityQueue作为maxheap

如何使用Queue.PriorityQueue作为maxheap? Queue.PriorityQueue 的默认实现是 minheap,文档中也没有提及是否可以用于 maxheap。

回答 5 投票 0

如何使用Queue.PriorityQueue作为maxheap python

如何使用Queue.PriorityQueue作为maxheap python? Queue.PriorityQueue 的默认实现是 minheap,在文档中也没有提到这是否可以用于 ma...

回答 5 投票 0

java中整数数组的优先级队列

我想比较以下数组的第二个元素: int[][] 间隔 = new int[][]{new int[]{0, 30},new int[]{5, 10},new int[]{15, 20}}; 我的优先级队列与自定义比较器: 优先...

回答 6 投票 0

如何通过自定义比较器创建和使用优先级队列映射?

对于上下文,我想创建一个“订单积压”,其中我有一个字符串键(符号)的映射,并且该值将是一个优先级队列,其中包含该符号的所有订单

回答 1 投票 0

优先级队列上 HashMap 的自定义排序[重复]

我想获得按值排序的键值对,如果值相等,我想按键升序排序。 我尝试使用 PriorityQueue 如下所示,但由于某种原因我得到了空指针。请...

回答 1 投票 0

为什么priority_queue使用greater<>来升序排列?

为什么priority_queue使用greater<>来升序排列? 由于c++ STL中的sort()方法使用greater<>()作为第三个参数来进行降序排列 这让我很困惑

回答 1 投票 0

C++)为什么priority_queue使用greater<>来升序排列?

为什么priority_queue使用greater<>来升序排列? 由于c++ STL中的sort()方法使用greater<>()作为第三个参数来进行降序排列 这让我很困惑

回答 1 投票 0

c++98 中 std::priority_queue 的自定义比较问题

我正在尝试创建“std::priority_queue”类型的变量,如下所示: 结构体 { bool 运算符()(std::向量 v1, std::向量 v2){return (v1[2] + v1[3]) > (v2[2] + v2[3])...

回答 1 投票 0

当我将项目附加到二维列表时,它不会添加到同一列表

类 PriorityQueue: def __init__(自身): self.q = [] def 入队(自身,优先级,项目): self.q.append([优先级,项目]) self.q = 排序(self.q) 返回自我....

回答 4 投票 0

始终保留n个最佳元素的数据结构

我需要一个数据结构,它始终保存到目前为止插入的n个最大的项目(没有特定的顺序)。 所以,如果 n 是 3,我们可以进行以下会话,其中我插入一些数字,然后...

回答 9 投票 0

有没有办法用二叉堆实现优先级队列,但值本身就是结构体?

我有一个作业要求我用c语言实现一个带有二进制堆的优先级队列。我有一个问题,因为基本上,我们得到的输入数据如下所示: 7 - 出现次数 3 4 0...

回答 1 投票 0

为什么Dijkstra算法中的decreasekey需要O(logN)时间?

对于更新部分, 对于 u 的所有邻居 w: 如果 dist[w] > dist[u] + l(u,w) 距离[w] = 距离[u] + l(u,w) 上一个[w] = u 减少键(H,w) 这里,w是节点的ID...

回答 3 投票 0

Ruby的标准库中有优先级队列数据结构实现吗?

Ruby的标准库有优先级队列实现吗?

回答 5 投票 0

通过多重比较在优先级队列中添加对象

我有一个优先级队列,其中包含一个名为“RouteInfo”的对象, 公共类路由信息{ 私人双总成本; 私有双总LeadTime; 私有 int 车道数; 公关...

回答 1 投票 0

从加权队列中提取元素的算法

我正在尝试实现一种“加权队列提取器”,以从具有不同优先级的不同队列中提取元素。我只需要选择要从中获取元素的队列。 让我们...

回答 1 投票 0

在priority_queue中使用更大的比较器存储自定义类的指针

我有一个像这样的priority_queue,而不是使用less比较(priority_queue的默认值)。我想使用更大的<>。所以我像这样调整代码 优先队列 我有一个像这样的priority_queue,而不是使用less比较(priority_queue的默认值)。我想使用更大的<>。所以我像这样调整代码 priority_queue<EncodingNode*, vector<EncodingNode*>, greater<Comparator>> pq; 这是我的EncodingNode的定义 class EncodingNode { public: char c; int freq; int priority; }; 这是我的比较器类: struct Comparator { bool operator()(const EncodingNode* a, const EncodingNode* b); }; bool Comparator::operator()(const EncodingNode* a, const EncodingNode* b) { // logic for comparing two EncodingNode* if (a->freq > b->freq) return true; else if (a->freq == b->freq) { if (a->priority > b->priority) return true; } return false; } 它一直给我这个错误:无法将参数 1 从 'EncodingNode *' 转换为 'const_Ty &' 无论如何,有没有办法解决这个问题,如果我删除代码的大部分,它会运行,但不使用更大的<>,我必须以某种方式否定比较器内的条件并给出错误的结果。在这种情况下是否可以使用更大的<>。非常感谢。 std::greater 将 (x, y) 转换为 x > y,因为 Comparator 没有实现 > 运算符 greater<Comparator> 无法编译。在这种情况下你不需要std::greater,你只需直接传递比较器即可: priority_queue<EncodingNode*, vector<EncodingNode*>, Comparator> pq; 请注意,您的比较器可以简化为: bool Comparator::operator()(const EncodingNode* a, const EncodingNode* b) { return std::tie(a->freq, a->priority) > std::tie(b->freq, b->priority); }

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.