1个不稳定版本
使用旧的Rust 2015
0.1.0 | 2017年3月6日 |
---|
#13 in #multiset
6KB
带上限的Multiset
多集是一种数据结构,类似于经典集合,但它允许每个键有重复元素。有关多集的更多信息,请参阅
这个crate实现了CappedMultiset
。CappedMultiset
是一种类似于多集的数据结构,但它可以为每个键值定义一个动态的"上限"。当定义了这样的上限时,对集合中元素值的任何检索操作返回的值都不会超过多集的"上限"。这个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