3个不稳定版本
| 0.2.0 | 2023年9月4日 |
|---|---|
| 0.1.2 | 2020年11月5日 |
| 0.1.1 |
|
| 0.1.0 | 2020年11月5日 |
#2266 在 数据结构 中
每月 38次下载
27KB
547 行
打包整数
packed_integers 为范围 u1 到 u31 之间的整数类型提供了一个可增长数组。
用例
假设你有一系列范围在 [0, 100000] 的无符号整数,你希望将它们存储在内存中。这个范围内的值可以使用每个整数 17 位来表示,因为 217 - 1 = 131071。由于Rust没有 u17 类型,你通常会使用 u32 数组来存储这些值,每个整数浪费了 15 位。
packed-integers 通过在位级别打包这些整数来帮助解决这个问题,本质上是以空间换取时间。
API
尽可能模仿Rust的 Vec API,以便提供你可能已经熟悉的集合方法。
灵感/资源
lib.rs:
packed_integers 为范围 u1 到 u31 之间的整数类型提供了一个可增长数组。
用例
假设你有一系列范围在 [0, 100000] 的无符号整数,你希望将它们存储在内存中。这个范围内的值可以使用每个整数 17 位来表示,因为 217 - 1 = 131071。由于Rust没有 u17 类型,你通常会使用 u32 数组来存储这些值,每个整数浪费了 15 位。
packed_integers 通过在位级别打包这些整数来帮助解决这个问题,本质上是以空间换取时间。
API
尽可能模仿Rust的 Vec API,以便提供你可能已经熟悉的集合方法。