17 个版本
0.2.5 | 2020 年 6 月 22 日 |
---|---|
0.2.4 | 2020 年 6 月 21 日 |
0.2.1 | 2020 年 5 月 21 日 |
0.1.19 | 2020 年 5 月 15 日 |
#1330 在 算法 中
154 每月下载量
11KB
217 行
lfu-cache
一个 Least Frequently Used (LFU) 缓存的 Rust 实现。
它支持插入和检索,这两个操作都是常数时间。在多个最少使用频率的条目之间发生冲突时,最少 最近 使用条目将被移除。
使用方法
extern crate lfu;
use lfu::LFUCache;
fn main() {
let mut lfu = LFUCache::new(2).unwrap(); //initialize an lfu with a maximum capacity of 2 entries
lfu.set(2, 2);
lfu.set(3, 3);
lfu.set(3, 30);
//We're at fully capacity. First purge (2,2) since it's the least-frequently-used entry, then insert the current entry
lfu.set(4,4);
assert_eq!(lfu.get(&2), None);
assert_eq!(lfu.get(&3), Some(&30));
}
安装
lib.rs
:
一个高效的 Least Frequently Used 缓存实现。
它支持插入和检索,这两个操作都是常数时间。在两个最少使用频率的条目之间发生冲突时,最少 最近 使用条目将被移除。
示例
extern crate lfu;
use lfu::LFUCache;
let mut lfu = LFUCache::with_capacity(2).unwrap(); //initialize an lfu with a maximum capacity of 2 entries
lfu.set(2, 2);
lfu.set(3, 3);
lfu.set(3, 30);
lfu.set(4,4); //We're at fully capacity. First purge (2,2) since it's the least-frequently-used entry, then insert the current entry
assert_eq!(lfu.get(&2), None);
assert_eq!(lfu.get(&3), Some(&30));
依赖项
~110KB