2 个不稳定版本
0.2.0 | 2023 年 1 月 8 日 |
---|---|
0.1.0 | 2022 年 12 月 28 日 |
#2440 in 数据结构
用于 stromatekt
50KB
1.5K SLoC
Flat Multimap
使用扁平化哈希表实现的 multimap 和 multiset
lib.rs
:
使用扁平化哈希表实现的 multimap 和 multiset。
FlatMultimap
是一个 multimap 实现,其中条目以扁平化的哈希表形式存储
a-> 1
a-> 2
b-> 3
与使用将键映射到值集合的哈希表的常见实现相比
a-> 1, 2
b-> 3
FlatMultiset
是一个 multiset 实现,其中项目以扁平化的哈希集形式存储
a
a
b
与使用将项目映射到计数发生次数的哈希表的常见实现相比
a-> 2
b-> 1
将元素存储为扁平化的哈希表 可以 具有节省空间的好处,与常见实现相比。这种情况可能发生在重复项非常少且/或元素大小非常小的情况下。
与常见实现相比,这种存储元素方式的缺点是在存在许多重复项时需要更多的空间。此外,没有高效的操作可以获取与单个键关联的所有值(在映射的情况下),也没有高效的操作来计数重复项的数量。
依赖项
~1.5–2MB
~31K SLoC