#key #own #associative #element #remove #chooses

colony

一个快速的自定义键的关联数据结构

3 个版本 (破坏性)

0.3.0 2023年8月4日
0.2.0 2023年8月4日
0.1.0 2023年7月31日

#1901数据结构

MIT 许可证

61KB
1.5K SLoC

Colony

Tests Crates.io Docs

一个无序数据结构,具有 O(1) 查找、删除、迭代和 O(1) 摊销插入。类似于选择其自己的键的更快的 HashMap。也类似于一个 Vec<Option<T>>,其中元素不是通过调用 Vec::remove 来删除,而是通过将元素设置为 None 来删除。

有关更多信息,请参阅 文档

此crate部分是 plf::colony 的移植,它是一个 提议添加 到 C++ 标准库的名为 std::hive 的内容。

示例

let mut colony = Colony::new();

// Insert
let foo_handle = colony.insert("foo");
let bar_handle = colony.insert("bar");

// Remove
assert_eq!(colony.remove(foo_handle), Some("foo"));

// Lookup
assert_eq!(colony.get(foo_handle), None);
assert_eq!(colony.get(bar_handle), Some(&"bar"));

// Iteration
for (key, &value) in colony.iter() {
    assert_eq!((key, value), (bar_handle, "bar"));
}

无运行时依赖项