Module segment_tree

Source
Expand description

Varified

§Usage

monoid_def!(Mm, std::i32::MAX, |x, y| { min(x, y) }); monoid_def!(Max, std::usize::MIN, |x, y| { max(x, y) }); #test fn debug() { let mut s = SegmentTree::::new(&[Max(1usize), Max(2), Max(3), Max(2), Max(1), Max(3), Max(1)]); dbg!(&s); s.update(7, Max(100)); dbg!(&s); } #test fn get() { let s = SegmentTree::::new(&[Max(1usize), Max(2), Max(3), Max(2), Max(1), Max(3), Max(1)]); dbg!(&s); assert_eq!(s.range(0, 2).0, 2); assert_eq!(s.range(3, 6).0, 3); assert_eq!(s.range(0, 8).0, 3); }

Structs§

SegmentTree