pb_ds

pb_ds 库全称 Policy-Based Data Structures。
pb_ds 库封装了很多数据结构,比如哈希(Hash)表,平衡二叉树,字典树(Trie 树),堆(优先队列)等。
就像 vector、set、map 一样,其组件均符合 STL 的相关接口规范。部分(如优先队列)包含 STL 内对应组件的所有功能,但比 STL 功能更多。
pb_ds 只在使用 libstdc++ 为标准库的编译器下可以用。

在堆的实现上,pb_ds 比 STL 提供了更多的选择。
__gnu_pbds::priority_queue<Typename,Compare,Tag>
pb_ds 根据 Tag 参数的不同,支持五种类型的堆:
• pairing_heap_tag 配对堆。
• binary_heap_tag 二叉堆。
• binomial_heap_tag 二项堆。
• rc_binomial_heap_tag 冗余计数二项堆。
• thin_heap_tag 除了合并的复杂度都和 Fibonacci 堆一样。

pb_ds 实现了三种类型的平衡树:
• rb_tree_tag 红黑树。
• splay_tree_tag 伸展树。
• ov_tree_tag 有序向量树。

主要是和 STL 中 set 的比较,pb_ds 更多地支持了:
• s.order_of_key(x) 返回 s 中 x 的排名。
• s.find_by_order(x) 返回 s 中排名为 x 的元素。
• s.join(S) 把 S 合并到 s 中。
• s.split(x,S) 小于等于 x 的属于当前树,其余的属于 S 树。

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值