8 个版本 (稳定)
使用旧的 Rust 2015
2.0.0 | 2017年6月6日 |
---|---|
1.3.1 | 2016年3月8日 |
1.1.2 | 2016年2月25日 |
1.0.1 | 2016年1月18日 |
0.9.0 | 2015年12月24日 |
#2220 in 数据结构
每月下载量 29
57KB
1K SLoC
Rust 的位图向量 trie
文档
由于使用底层不稳定 API,需要 Rust-nightly。
这是一个非持久的位图向量 trie,具有词大小索引:因此,在 32 位系统上索引为 32 位;在 64 位系统上为 64 位。
它本质上表现得像一个无界(除了词大小索引外)的稀疏向量。
对于空间接近的访问,性能良好,但对于随机空间稀疏访问则下降。如果使用 popcnt 和 lzcnt 指令编译,性能将显著提高。更多信息请参阅 wiki。
最后访问路径被缓存以加速下一次附近的访问。
有可用的多路径缓存方法来加速多个位置的只读访问,但当前设计会导致写性能下降。
使用方法
extern crate bitmaptrie;
use bitmaptrie::Trie;
fn main() {
let mut trie: Trie<String> = Trie::new();
trie.set(123usize, "testing 123".to_owned());
if let Some(value) = trie.get_mut(123) {
*value = "test pass".to_owned();
}
}
作者
Peter Liniker
许可证
双 MIT/Apache 2.0