#hash-table #hash-map #flattened #multiset #multimap #flat #key

flat-multimap

使用扁平化哈希表实现的 multimap 和 multiset

2 个不稳定版本

0.2.0 2023 年 1 月 8 日
0.1.0 2022 年 12 月 28 日

#2440 in 数据结构


用于 stromatekt

MIT/Apache

50KB
1.5K SLoC

Flat Multimap

build status crates.io docs rustc

使用扁平化哈希表实现的 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