#bit-set

no-std bit-set-omnitool

一组位

1 个不稳定版本

使用旧的 Rust 2015

0.6.0 2024年7月7日

#719数据结构

Download history 70/week @ 2024-07-01 53/week @ 2024-07-08

123 每月下载量
omnitool 中使用

Apache-2.0 OR MIT

51KB
943

bit-set

紧凑的位集。

crates.io Documentation Rust CI rustc 1.0+

Dependency Status Download Status

用法

将其添加到您的 Cargo.toml 中

[dependencies]
bit-set = "0.5"

从 Rust 2018 版本开始,extern crate 已不再是必需的。如果您的版本较旧(Rust 2015),请将其添加到 crate 根目录中

extern crate bit_set;

如果要在具有 #![no_std] 的程序中使用位集,只需删除默认功能即可

[dependencies]
bit-set = { version = "0.5", default-features = false }

描述

使用位向量作为底层表示形式实现集合的一种方法,用于存储无符号数值元素。

还应注意的是,存储一组对象所需的存储量与对象的最大值成正比,当作为 usize 观看时。

示例

use bit_set::BitSet;

// It's a regular set
let mut s = BitSet::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 `BitVec`
let other = BitSet::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 `BitVec`
let bv = s.into_bit_vec();
assert!(bv[3]);

许可证

双重许可,以兼容 Rust 项目。

根据 Apache License Version 2.0 许可:http://apache.ac.cn/licenses/LICENSE-2.0,或 MIT 许可证:http://opensource.org/licenses/MIT,任选其一。

依赖关系

~99KB