#range #union #intersection #difference #set-operations #complement #integer

irange

用于存储和操作整数范围的集合操作的数据结构

1个稳定版本

1.0.0 2024年8月25日

#771数据结构

Download history 91/week @ 2024-08-19

91 每月下载量

MIT 许可证

32KB
759

irange

Crates.io Version

用于存储和操作整数范围的集合操作的数据结构。

支持类型:u8u16u32u64u128usizei8i16i32i64i128isize

示例

let range1 = RangeSet::<i64>::new_from_ranges(&[AnyRange::from(3..=4), AnyRange::from(7..9)]);
let range2 = RangeSet::<i64>::new_from_range(-2..=4);

let union = range1.union(&range2);
println!("{union}"); // [ -2..=4 7..=8 ]
for value in union.iter() {
    print!("{value} "); // -2 -1 0 1 2 3 4 7 8
}
println!();

let intersection = range1.intersection(&range2);
println!("{intersection}"); // [ 3..=4 ]
for value in intersection.iter() {
    print!("{value} "); // 3 4
}
println!();

let difference = range1.difference(&range2);
println!("{difference}"); // [ 7..=8 ]
for value in difference.iter() {
    print!("{value} "); // 7 8
}
println!();

支持的操作

  • 联合
  • 交集
  • 差集
  • 补集
  • 有交集
  • 包含
  • 包含所有
  • 是总集
  • 为空

无运行时依赖