gpt4 book ai didi

c++ - 高级优先队列

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:30:25 24 4
gpt4 key购买 nike

我正在寻找 C++ 优先级队列的实现。除了STL优先级队列中的基本功能外,它还需要以下方法:

  1. 它可以在推送时删除所有相同的元素(由函数确定)(类似于集合)
  2. 它可以过滤掉一些元素(由另一个函数决定)。

您对如何实现它有什么建议吗?

最佳答案

您可以将 std::set 用作没有重复的优先级队列。 top 元素可以通过 rbegin() 找到。渐近复杂度与二叉堆相同:O(1) top 根据 rbegin 的标准要求,O(lg n) push 和 O(lg n) pop。不过,常数会更高。

至于过滤器,我建议您将 std::set 包装在一个类中,该类具有运行过滤的自定义 push 方法(无论如何这是个好主意)为你断言。

关于c++ - 高级优先队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12960197/

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