#有序 #集合 #稳定

stable_node_set

带有值处理器的有序集合

1 个不稳定版本

0.1.0 2023年12月7日

#1269 in 数据结构

MIT/Apache

36KB
757

stable_node_set

一个用于带有值处理器的有序集合的crate。

我应该使用稳定的节点集吗?

可能不是。你应该只在以下情况下使用它:

  1. 你需要一个集合。
  2. 你需要值有序(例如,用于迭代或确定另一个值的上一个或下一个值)。
  3. 以下两个条件之一:a) 你需要一个对值的稳定引用。b) 你需要在集合中找到另一个值的下一个/上一个值。

最后一个要求是最严格的。这意味着你不能搜索你的值(可能成本太高,或者顺序不稳定),或者你需要能够获取下一个和上一个值(这并不常见)。

示例

use stable_node_set::{NodeSet, NodeHandle};

fn main() {
  let mut node_set = NodeSet::new();

  let handle_1 = node_set.insert(1).unwrap();
  let handle_2 = node_set.insert(2).unwrap();
  let handle_3 = node_set.insert(3).unwrap();

  assert_eq!(node_set.remove(handle_1).unwrap(), 1);
  assert_eq!(node_set.remove(handle_2).unwrap(), 2);
  assert_eq!(node_set.remove(handle_3).unwrap(), 3);
}

许可证

在以下许可证下使用:

任选其一。

贡献

除非你明确表示,否则根据Apache-2.0许可证定义,你有意提交的任何贡献,包括在作品中包含的,应按上述方式双许可,不附加任何额外条款或条件。

依赖

~280KB