优先级队列的推入和弹出以及max_heap的插入和删除的时间复杂度是否相同?

问题描述

我对优先级队列的推送弹出和max_heap的插入删除的时间复杂度感到困惑。当输入很长时(例如10 ^ 5),它们会花费相同的时间吗?我试图解决输入很长的问题。但是当我使用堆时,出现运行时错误。

解决方法

priority_queue是根据堆实现的,它只是提供保证维持堆不变性的接口(与使用普通的vector + make_heap不同,它最初是堆) ,但开发人员可以在之后直接滥用vector来破坏不变式。

如果您对make_heap所没有的priority_queue结果感到不满,那可能是因为您操纵堆的代码不正确;它们都应同样出色地工作(priority_queue只是为您简化了一些事情)。没有复制者,我不能说你做错了。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...