#布尔 #数组 #固定大小 #空间 # #优化 #容器

compact_bitset

一种用于存储固定大小布尔数组以优化空间的类型

4个版本

0.1.3 2022年11月30日
0.1.2 2022年11月30日
0.1.1 2022年11月30日
0.1.0 2022年11月30日

2124算法 中排名

每月 下载 24

MIT/Apache

16KB
280

一种用于存储固定大小布尔数组以优化空间的类型

受C++的std::vector实现启发

概述

compact_bitset 添加了一个新的容器类型,CompactBitset。一个 CompactBitset 存储布尔变量,每个布尔变量使用一个位。它适用于需要布尔数组但又不希望使用 Vec<bool> 或切片的情况,因为它们的空间要求较高。该 CompactBitset 将每个布尔变量使用的空间减少到原来的八分之一。

详细信息

CompactBitset 使用代理类型 BitRefBitRefMut 用于索引操作。

这两个类型都解引用到 bool 并实现了与 bool 及彼此的比较。

BitRefMut 写入将改变其在 CompactBitset 中象征性引用的位。

BitRefBitRefMut 包含对其父 CompactBitset 的引用。因此,可以从 CompactBitset 借出任意数量的 BitRef,但一次只能有一个 BitRefMut 是活动的。这使得 BitRefBitRefMut 能够利用引用的安全性保证。

BitIter 允许用户通过包装一个其索引增加的 BitRef 来不可变地迭代 CompactBitset。它包含所有标准 Iterator 功能。

BitIterMut 可能在未来,但目前还没有成功创建一个不使用 unsafe 的实现。

依赖项

~155KB