【发布时间】:2018-03-17 06:58:45
【问题描述】:
我对 C++ STL 中的 Heap 和 priority_queue 有点困惑。 priority_queue 真的会产生 Heap 吗?
如果我们按顺序插入元素 - 5、1、10、30、20 maxHeap 的输出将为:30、20、5、1、10 而priority_queue 的输出将是:30、20、10、5、1这背后的原因是什么?
priority_queue 是否总是排序的?
【问题讨论】:
-
“输出将是”是什么意思?
priority_queue不产生输出。它是一种数据结构。你是如何产生输出的? -
输出是指打印priority_queue的内容。
-
如果 internal 内容作为优先队列履行其合同,你为什么要关心它的外观?
-
您仍然没有告诉我们您所说的“输出”或“打印内容”是什么意思。优先级队列的内容不可访问,但您必须删除顶部元素才能获得下一个元素。删除操作也改变了数据结构的内部表示。
标签: c++ stl heap priority-queue