#bitset

id-set

一个小尺寸数据存储在栈上的bitset实现

17个版本

使用旧的Rust 2015

0.2.2 2017年10月3日
0.2.1 2017年7月4日
0.1.13 2017年7月3日
0.1.10 2017年6月28日

数据结构中排名1839

Download history 32844/week @ 2024-03-14 34873/week @ 2024-03-21 45038/week @ 2024-03-28 45301/week @ 2024-04-04 53510/week @ 2024-04-11 50977/week @ 2024-04-18 49538/week @ 2024-04-25 53993/week @ 2024-05-02 53635/week @ 2024-05-09 56997/week @ 2024-05-16 63806/week @ 2024-05-23 74289/week @ 2024-05-30 73120/week @ 2024-06-06 67965/week @ 2024-06-13 58641/week @ 2024-06-20 69542/week @ 2024-06-27

每月下载量288,907
5个crate中(3个直接使用)使用

MIT/Apache

49KB
1.5K SLoC

一个小尺寸数据存储在栈上的bitset实现。

文档:https://docs.rs/id-set/.


lib.rs:

IdSet是一个bitset实现,用于小尺寸数据(小于196的元素)的栈上存储,并跟踪元素计数。

示例

API通常与bitset crate的类似。

#
let mut set = IdSet::new();
set.insert(42);
assert!(set.contains(42));
set.remove(42);
assert_eq!(set.len(), 0);

此外,IdIter结构提供对任何遍历Block值迭代器的位的迭代,允许遍历任意多个集合的并集、交集和差集。

#
let a: IdSet = (0..15).collect();
let b: IdSet = (10..20).collect();
let c: IdSet = (0..5).collect();

assert_eq!(a.intersection(b.union(&c)).collect::<Vec<_>>(),
           a.intersection(&b).union(a.intersection(&c)).collect::<Vec<_>>());

无运行时依赖