是否存在优先级队列?

问题描述 投票:0回答:1

我正在尝试使用[[priority_queues并在以下情况下陷入困境。

(1, 4) (2, 4) (3, 4) (9, 4) (8, 4) (7, 4) (4, 4) (6, 4) (5, 4)
我想存储此类数据:因此,我尝试了priority_queue<priority_queue<pair<int, int>>> A,并且此行编译正常(无错误)。因此,我假设它应该是有效的类型。

我为什么需要这个?

我想以9,9,9,9, 8,8,8,8, 7,7,...的降序访问这些整数因此,每个整数应可访问的次数为

((整数,次数)

。。现在我不确定如何在此结构中输入值。

我正在尝试并遇到的错误是此

for (unsigned int i = 0; i < rows; i++) { priority_queue<pair<int, int >> temp; for (unsigned int j = 0; j < cols; j++) { temp.push(make_pair(i, 0)); } A.push(temp); }

任何帮助将不胜感激
c++ data-structures priority-queue
1个回答
0
投票
std::priotity_queue中的元素需要进行比较以确定它们的顺序。默认情况下,元素由std::priotity_queue进行比较,但是您可以提供自己的比较,只要它提供

严格弱排序。

[很遗憾,std::less没有提供任何比较运算符。由于您无法比较两个优先级队列以进行排序,因此我认为无法按照您想要的方式嵌套它们。
© www.soinside.com 2019 - 2024. All rights reserved.