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,以便提供你可能已经熟悉的集合方法。