#plane #grid2d #data-structure-2d

plane-2d

表示无限 2D 平面的连续 2D 数据结构

8 个版本

0.1.7 2024 年 8 月 21 日
0.1.6 2024 年 7 月 9 日
0.1.4 2024 年 6 月 14 日

#481数据结构

Download history 226/week @ 2024-06-07 208/week @ 2024-06-14 3/week @ 2024-06-21 3/week @ 2024-06-28 239/week @ 2024-07-05 23/week @ 2024-07-12 136/week @ 2024-08-16

136 每月下载量

MIT/Apache

145KB
3K SLoC

二维平面

模型连续、无限大的(在整数和存储限制内)2D 数据结构。此 crate 的目的是提供一种在特定场景下比 HashMap<(i32, i32), T> 更快的结构,并提供更好的 API 来处理 2D 平面。

此 crate 将始终提供 2D 数据结构。类型 Plane<T> 是实现 Default 特性的各种数据类型的容器。您可以使用 Option<T> 来存储可选初始化的数据。

除了 std 库之外的依赖项,不使用其他依赖项,除非依赖于功能标志隐藏的依赖项。

内存布局

使用几乎完全相同的 grid crate 来使用 Grid<T> 类型。在 Vec<T> 中存储平面的密集块(由 grid crate 的副本提供的 Grid<T>)和 HashMap<(i32, i32), T> 来存储超出 Grid<T> 边界的单元格。与 HashMap<(i32, i32), T> 不同,这里进行了两次分配。


lib.rs:

二维平面

模型连续、无限大的(在整数和存储限制内)2D 数据结构。此 crate 的目的是提供一种在特定场景下比 HashMap<(i32, i32), T> 更快的结构,并提供更好的 API 来处理 2D 平面。

此 crate 将始终提供 2D 数据结构。类型 Plane<T> 是实现 Default 特性的各种数据类型的容器。您可以使用 Option<T> 来存储可选初始化的数据。

除了 std 库之外的依赖项,不使用其他依赖项,除非依赖于功能标志隐藏的依赖项。

内存布局

使用几乎完全相同的 grid crate 来使用 Grid<T> 类型。在 Vec<T> 中存储平面的密集块(由 grid crate 的副本提供的 Grid<T>)和 HashMap<(i32, i32), T> 来存储超出 Grid<T> 边界的单元格。与 HashMap<(i32, i32), T> 不同,这里进行了两次分配。

依赖关系

~0–1.3MB
~22K SLoC