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预提交钩子。