1 个不稳定版本
0.1.0 | 2021年8月26日 |
---|
#2316 in 数据结构
在 inditech 中使用
8KB
199 代码行
ringvec
基于向量的简单环形缓冲区实现。除了用于基准测试的 criterion 以外,没有其他依赖项。
使用方法
use ringvec::RingVec;
fn main() {
let mut v = RingVec::new(3);
assert!(v.is_empty());
assert!(!v.is_full());
v.push(1);
v.push(2);
v.push(3);
v.push_force(4);
v.push_force(5);
assert!(!v.is_empty());
assert!(v.is_full());
assert_eq!(v.peek_oldest(), Some(&3));
assert_eq!(v.peek_newest(), Some(&5));
assert_eq!(v.pop(), Some(3));
assert!(!v.is_empty());
assert!(!v.is_full());
assert_eq!(v.pop(), Some(4));
assert_eq!(v.pop(), Some(5));
assert!(v.is_empty());
assert!(!v.is_full());
}
性能
它针对查看进行了优化,但推入时也不慢。可能在基准测试查看时出了一些问题。
- 推入 7.4ns
- 查看最老元素 0ns
- 查看最新元素 0ns