#pi #deque #slot-deque #pi-slot-deque

pi_slot_deque

Two terminal queue based on slotmap

5 releases

0.2.1 Oct 21, 2022
0.2.0 Oct 21, 2022
0.1.3 Apr 29, 2022
0.1.1 Apr 16, 2022
0.1.0 Mar 1, 2022

#3 in #deque

Download history 100/week @ 2023-01-05 106/week @ 2023-01-12 74/week @ 2023-01-19 78/week @ 2023-01-26 121/week @ 2023-02-02 84/week @ 2023-02-09 115/week @ 2023-02-16 87/week @ 2023-02-23 51/week @ 2023-03-02 38/week @ 2023-03-09 34/week @ 2023-03-16 22/week @ 2023-03-23 43/week @ 2023-03-30 60/week @ 2023-04-06 16/week @ 2023-04-13 47/week @ 2023-04-20

168 downloads per month
Used in 13 crates (5 directly)

MIT/Apache

13KB
288 lines

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

lib.rs:

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

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

选择:

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

Dependencies

~275KB