1 个不稳定版本
0.1.0 | 2023年12月7日 |
---|
#1269 in 数据结构
36KB
757 行
stable_node_set
一个用于带有值处理器的有序集合的crate。
我应该使用稳定的节点集吗?
可能不是。你应该只在以下情况下使用它:
- 你需要一个集合。
- 你需要值有序(例如,用于迭代或确定另一个值的上一个或下一个值)。
- 以下两个条件之一: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版 (LICENSE-APACHE 或 http://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非你明确表示,否则根据Apache-2.0许可证定义,你有意提交的任何贡献,包括在作品中包含的,应按上述方式双许可,不附加任何额外条款或条件。
依赖
~280KB