#队列 #数据 #推送 #有限 #覆盖 # #尝试

limited-queue

当队列满时,尝试推送数据会覆盖最旧数据的有限队列

1 个不稳定版本

0.1.5 2024年7月12日
0.1.4 2024年7月12日

#1063算法

Download history 151/week @ 2024-07-04 257/week @ 2024-07-11 11/week @ 2024-07-18

419 每月下载量
用于 super-rodio

MIT 许可证

15KB
222 代码行

有限队列

Crates.io Version GitHub top language GitHub CI Status Crates.io Downloads License

当队列满时,尝试推送数据会覆盖最旧数据的循环队列。

所有操作都是 O(1) 复杂度,除了构造函数使用 O(Vec::with_capacity)

T 满足特质约束 Default 时,提供可选方法 pop

比较

我找到了一个类似的库 circular-queue,但没有基本的 peekpop 操作。目前的比较如下

有限队列 循环队列
算法 循环队列(前后端,没有额外元素槽位) 基于 lencapacity 的循环队列(由 Vec 提供)
元素特质约束 否,对于 pop 方法可选 Default -
push,与大小相关的操作
peekpop 支持 ✅: peek
✅: 对于 T: Defaultpop
索引
- [0, len)
- 支持索引 [idx]
- 支持索引 get(idx)
- 可选可变索引 [idx]
迭代器
- 从前端到后端

- 双向迭代
- 可选可变迭代
clear 复杂度 O(1) O(Vec::clear)
serde 支持 ❌ (待办事项)

我们欢迎任何形式的贡献,请随时提交问题和PR。

设置

请运行 scripts/setup.sh 以设置提交。当前,该脚本注册了一个git预提交钩子。

无运行时依赖