Function reservoir::sample_into
[−]
[src]
pub fn sample_into<I, RNG>(
samples: &mut Vec<I::Item>,
rng: &mut RNG,
sample_size: usize,
iter: I
) where
I: Iterator,
RNG: Rng,
Collect a random sample of a known maximum size from an iterator of unknown length into an existing Vec.
Examples
For example:
let iter = 0..10; let mut samples : Vec<i32> = Vec::new(); sample_into(&mut samples, &mut thread_rng(), 4, iter); assert_eq!(4, samples.len()); assert!(samples.iter().all(|e| *e >= 0 && *e < 10));
Preserves any elements already in the vector:
let iter = 0..10; let mut samples : Vec<i32> = vec![99,100]; sample_into(&mut samples, &mut thread_rng(), 4, iter); assert_eq!(6, samples.len()); assert_eq!(99, samples[0]); assert_eq!(100, samples[1]); assert!(samples[2..].iter().all(|e| *e >= 0 && *e < 10));