#deque #pi #slot-deque

pi_slot_deque

基于slotmap的双端队列

5 个版本

0.2.1 2022年10月21日
0.2.0 2022年10月21日
0.1.3 2022年4月29日
0.1.1 2022年4月16日
0.1.0 2022年3月1日

#8#deque

Download history 67/week @ 2024-03-13 124/week @ 2024-03-20 143/week @ 2024-03-27 92/week @ 2024-04-03 81/week @ 2024-04-10 94/week @ 2024-04-17 87/week @ 2024-04-24 97/week @ 2024-05-01 72/week @ 2024-05-08 86/week @ 2024-05-15 84/week @ 2024-05-22 56/week @ 2024-05-29 65/week @ 2024-06-05 76/week @ 2024-06-12 87/week @ 2024-06-19 64/week @ 2024-06-26

294 每月下载量
用于 28 个crate (5 直接)

MIT/Apache 许可

13KB
288 代码行

  • 基于slotmap的双端队列
  • 支持从队列头部添加或弹出
  • 支持从队列尾部添加或弹出
  • 与标准库的双端队列相比,本双端队列还支持根据索引快速从任意位置删除和查询

lib.rs:

基于slotmap的双端队列 支持从队列头部添加或弹出 支持从队列尾部添加或弹出 与标准库的双端队列相比,本双端队列还支持根据索引快速从任意位置删除和查询,在一些情况下,可快速删除的双端队列非常有用(例如pi_lib中的task_pool)

特色: 将双端队列本身的逻辑和索引(删除就需要依赖索引)分离,因此,非常容易与其他需要索引的数据结构共享索引。关于共享索引的意义,请参考:https://github.com/GaiaWorld/pi_lib/tree/master/dyn_uint

选择

  • 当您需要使用双端队列,且不需要快速从任意位置删除和查询时,标准库中的双端队列是一个不错的选择
  • 当您的部分功能需要使用从任意位置删除和查询,部分功能不需要时,不建议同时依赖标准库与本库的双端队列,因为会增加应用程序的尺寸。但如果你不介意,你也可以这么做!在这种情况下,建议的做法是,总是使用本库或其它的替代品,本库的双端队列性能仅略低于标准库(删除功能也需要一定成本)

依赖

~280KB