2 个版本

使用旧的 Rust 2015

0.1.1 2023 年 3 月 22 日
0.1.0 2021 年 5 月 5 日

1173数据结构 中排名

Download history 544/week @ 2024-03-14 620/week @ 2024-03-21 499/week @ 2024-03-28 421/week @ 2024-04-04 451/week @ 2024-04-11 574/week @ 2024-04-18 513/week @ 2024-04-25 511/week @ 2024-05-02 436/week @ 2024-05-09 399/week @ 2024-05-16 288/week @ 2024-05-23 467/week @ 2024-05-30 495/week @ 2024-06-06 290/week @ 2024-06-13 369/week @ 2024-06-20 240/week @ 2024-06-27

每月下载量 1,470
8 包中使用(直接使用 2 个)

MIT/Apache

55KB
1K SLoC

Rust 的多重映射实现

这是一个支持范围查询的有序多重映射实现,通过在 std::collections::BTreeMap 的基础上封装实现。

示例

extern crate multimap;

use btreemultimap::BTreeMultiMap;

fn main () {
    let mut map = BTreeMultiMap::new();
    map.insert(3, "a");
    map.insert(5, "b");
    map.insert(5, "c");
    map.insert(8, "c");
    map.insert(9, "d");

    assert_eq!(map[3], "a");
    assert_eq!(map.get(5), Some(&"b"));
    assert_eq!(map.get_vec(5), Some(&vec!["b", "c"]));

    for (&key, &value) in map.range((Included(&4), Included(&8))) {
        println!("{}: {}", key, value);
    }
    
    let mut iter = map.range(4..=8);
    assert_eq!(Some((&5, &"b")), iter.next());
    assert_eq!(Some((&5, &"c")), iter.next());
    assert_eq!(Some((&8, &"c")), iter.next());
    assert_eq!(None, iter.next());
}

许可协议

许可协议为以下之一

贡献

除非你明确声明,否则根据 Apache-2.0 许可证定义,你故意提交给作品的所有贡献都将如上所述双重许可,不附加任何额外条款或条件。

依赖项

~170KB