#bit-array #bitset

bitarray-set

基于位数组支持的位集合

2 个版本

使用旧的 Rust 2015

0.4.1 2017 年 4 月 12 日
0.4.0 2016 年 7 月 20 日

#8#bit-array


4 个 crate 中使用(通过 keeshond

MIT/Apache

50KB
873

基于位数组支持的位集合

文档可在 https://ambaxter.github.io/bitarray_set/bitarray_set/ 查找。


lib.rs:

使用位数组作为底层表示来存储无符号数值元素的集合实现的实现。

还应注意的是,存储一个对象集合所需的空间与对象的最大值成正比,当将其视为 usize 时。

示例

extern crate typenum;
use typenum::{Unsigned, U8};
use bitarray_set::BitArraySet;

// It's a regular set
let mut s = BitArraySet::<u32, U8>::new();
s.insert(0);
s.insert(3);
s.insert(7);

s.remove(7);

if !s.contains(7) {
    println!("There is no 7");
}

// Can initialize from a `BitArray`
let other = BitArraySet::<u32, U8>::from_bytes(&[0b11010000]);

s.union_with(&other);

// Print 0, 1, 3 in some order
for x in s.iter() {
    println!("{}", x);
}

// Can convert back to a `BitArray`
let bv = s.into_bit_array();
assert!(bv[3]);

依赖项

~435KB