C++ 如何在C++;?

C++ 如何在C++;?,c++,data-structures,queue,C++,Data Structures,Queue,最好在具有最高优先级的队列中获取元素值。是否需要多个队列,每个队列具有不同的优先级?你到底想解决什么问题 队列的概念是——它是一个队列,队列中的下一个队列具有优先级,您应该只通过弹出队列中的内容来遍历队列。使用另一个队列实现优先级队列(无论是否循环)并不是最有效的方法。您可以将其实现为堆或树——有许多文章,包括上的一篇。您可以将优先级队列实现为二进制最小堆。每个条目的键可以表示其“优先级”,键越低,优先级越高。因此,删除根条目将返回具有最高优先级的条目。是的,优先级队列是不同的。如果我们讨论的是

最好在具有最高优先级的队列中获取元素值。

是否需要多个队列,每个队列具有不同的优先级?你到底想解决什么问题


队列的概念是——它是一个队列,队列中的下一个队列具有优先级,您应该只通过弹出队列中的内容来遍历队列。使用另一个队列实现优先级队列(无论是否循环)并不是最有效的方法。您可以将其实现为堆或树——有许多文章,包括上的一篇。

您可以将优先级队列实现为二进制最小堆。每个条目的键可以表示其“优先级”,键越低,优先级越高。因此,删除根条目将返回具有最高优先级的条目。

是的,优先级队列是不同的。如果我们讨论的是多个优先级级别(例如1000),则多个队列不是最佳解决方案。@Falmari--不确定您是否正确阅读或解释了我的答案。用另一个队列创建优先级队列没有任何意义——认为您没有抓住要点。根据定义,它不是一个队列。使用堆代替。有一个std::priority_队列。似乎产生了一些摩擦。也许你可以添加一些上下文——你有多少优先级;更广泛的目标是什么,或者这是一个抽象的问题;我假设你想要一个固定大小的优先级队列?这可能有助于一些评论者直接回答。。。