#multiset #sets #set #data-structures

capped_multiset

一个可以返回元素上限值的Multiset

1个不稳定版本

使用旧的Rust 2015

0.1.0 2017年3月6日

#13 in #multiset

MIT 许可证

6KB

Build Status Crates.io Crates.io Docs.rs

带上限的Multiset

多集是一种数据结构,类似于经典集合,但它允许每个键有重复元素。有关多集的更多信息,请参阅

这个crate实现了CappedMultisetCappedMultiset是一种类似于多集的数据结构,但它可以为每个键值定义一个动态的"上限"。当定义了这样的上限时,对集合中元素值的任何检索操作返回的值都不会超过多集的"上限"。这个cap可以在运行时更改,不会影响多集中实际存储的数据。因此,将cap = 1或任何其他低值并不是一个有损操作。

安装

[dependencies]
capped_multiset = "0.1"

示例

extern crate capped_multiset;

use capped_multiset::CappedMultiset;

fn main() {
    let set = vec![1, 2, 3, 4, 5];
    let mut capped_set = CappedMultiset::new(set);
    assert_eq!(capped_set.sum(), 15);
    capped_set.set_cap(Some(1));
    assert_eq!(capped_set.sum(), 5);
    capped_set.set_cap(Some(2));
    assert_eq!(capped_set.sum(), 9);
}

许可证

MIT

无运行时依赖