1 个不稳定版本
| 0.1.5 | 2024年7月12日 |
|---|---|
| 0.1.4 |
|
#1063 在 算法
419 每月下载量
用于 super-rodio
15KB
222 代码行
有限队列
当队列满时,尝试推送数据会覆盖最旧数据的循环队列。
所有操作都是 O(1) 复杂度,除了构造函数使用 O(Vec::with_capacity)。
当 T 满足特质约束 Default 时,提供可选方法 pop。
比较
我找到了一个类似的库 circular-queue,但没有基本的 peek 和 pop 操作。目前的比较如下
有限队列 |
循环队列 |
|
|---|---|---|
| 算法 | 循环队列(前后端,没有额外元素槽位) | 基于 len 和 capacity 的循环队列(由 Vec 提供) |
| 元素特质约束 | 否,对于 pop 方法可选 Default |
- |
push,与大小相关的操作 |
✅ | ✅ |
peek,pop 支持 |
✅: peek✅: 对于 T: Default 的 pop |
❌ |
| 索引 | ✅ - [0, len)- 支持索引 [idx]- 支持索引 get(idx)- 可选可变索引 [idx] |
❌ |
| 迭代器 | ✅ - 从前端到后端 |
✅ - 双向迭代 - 可选可变迭代 |
clear 复杂度 |
O(1) |
O(Vec::clear) |
serde 支持 |
❌ (待办事项) | ✅ |
我们欢迎任何形式的贡献,请随时提交问题和PR。
设置
请运行 scripts/setup.sh 以设置提交。当前,该脚本注册了一个git预提交钩子。