Skip to content

Commit 1917781

Browse files
committed
Revert "segtree: FromIterator"
This reverts commit db78bd6.
1 parent c6ea9ec commit 1917781

File tree

1 file changed

+0
-21
lines changed

1 file changed

+0
-21
lines changed

src/segtree.rs

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ use crate::internal_bit::ceil_pow2;
22
use crate::internal_type_traits::{BoundedAbove, BoundedBelow, One, Zero};
33
use std::cmp::{max, min};
44
use std::convert::Infallible;
5-
use std::iter::FromIterator;
65
use std::marker::PhantomData;
76
use std::ops::{Add, BitAnd, BitOr, BitXor, Mul, Not};
87

@@ -135,26 +134,6 @@ impl<M: Monoid> From<Vec<M::S>> for Segtree<M> {
135134
ret
136135
}
137136
}
138-
impl<M: Monoid> FromIterator<M::S> for Segtree<M> {
139-
fn from_iter<T: IntoIterator<Item = M::S>>(iter: T) -> Self {
140-
let iter = iter.into_iter();
141-
let n = iter.size_hint().0;
142-
let log = ceil_pow2(n as u32) as usize;
143-
let size = 1 << log;
144-
let mut d = Vec::with_capacity(size * 2);
145-
d.extend(
146-
std::iter::repeat_with(M::identity)
147-
.take(size)
148-
.chain(iter)
149-
.chain(std::iter::repeat_with(M::identity).take(size - n)),
150-
);
151-
let mut ret = Segtree { n, size, log, d };
152-
for i in (1..size).rev() {
153-
ret.update(i);
154-
}
155-
ret
156-
}
157-
}
158137
impl<M: Monoid> Segtree<M> {
159138
pub fn set(&mut self, mut p: usize, x: M::S) {
160139
assert!(p < self.n);

0 commit comments

Comments
 (0)