RosettaCodeData/Task/Remove-duplicate-elements/Rust/remove-duplicate-elements.rust

20 lines
647 B
Text
Raw Permalink Normal View History

2016-12-05 22:15:40 +01:00
use std::collections::HashSet;
use std::hash::Hash;
2018-06-22 20:57:24 +00:00
fn remove_duplicate_elements_hashing<T: Hash + Eq>(elements: &mut Vec<T>) {
let set: HashSet<_> = elements.drain(..).collect();
elements.extend(set.into_iter());
2016-12-05 22:15:40 +01:00
}
2018-06-22 20:57:24 +00:00
fn remove_duplicate_elements_sorting<T: Ord>(elements: &mut Vec<T>) {
elements.sort_unstable(); // order does not matter
elements.dedup();
}
fn main() {
let mut sample_elements = vec![0, 0, 1, 1, 2, 3, 2];
println!("Before removal of duplicates : {:?}", sample_elements);
remove_duplicate_elements_sorting(&mut sample_elements);
println!("After removal of duplicates : {:?}", sample_elements);
2016-12-05 22:15:40 +01:00
}