gpt4 book ai didi

c++ - 我应该什么时候使用 make_heap 与优先队列?

转载 作者:IT老高 更新时间:2023-10-28 12:53:39 27 4
gpt4 key购买 nike

我有一个要用来创建堆的 vector 。我不确定是否应该使用 C++ make_heap 函数或将 vector 放入优先级队列?在性能方面哪个更好?我应该什么时候使用一个与另一个?

最佳答案

在性能方面没有区别。 std::priority_queue 只是一个适配器类,它将容器和与堆相关的相同函数调用包装到一个类中。 std::priority_queue 的规范公开声明。

通过从暴露的 std::vector 构建 heap 并直接调用与堆相关的函数,您可以保持它对外部访问的可能性保持开放,这可能会损坏堆/队列的完整性。 std::priority_queue 充当限制访问“规范”最小值的障碍:push()pop() top() 等。你可以把它看作是自律的强制措施。

此外,通过使您的队列接口(interface)适应“规范”操作集,您可以使其与符合相同外部规范的其他基于类的优先级队列实现统一和可互换。

关于c++ - 我应该什么时候使用 make_heap 与优先队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11266360/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com