master > master: code-rust - utils für vec -> set conv
This commit is contained in:
parent
cc297011b2
commit
0d8583dd0c
@ -4,6 +4,10 @@
|
|||||||
|
|
||||||
extern crate regex;
|
extern crate regex;
|
||||||
|
|
||||||
|
use std::hash::Hash;
|
||||||
|
use std::collections::HashMap;
|
||||||
|
use std::collections::HashSet;
|
||||||
|
|
||||||
use self::regex::Regex;
|
use self::regex::Regex;
|
||||||
|
|
||||||
// ----------------------------------------------------------------
|
// ----------------------------------------------------------------
|
||||||
@ -57,5 +61,29 @@ pub fn remove_first<T>(x: &Vec<T>) -> Vec<T>
|
|||||||
if n == 0 {
|
if n == 0 {
|
||||||
return Vec::<T>::new();
|
return Vec::<T>::new();
|
||||||
}
|
}
|
||||||
return restrict::<T>(x, 0, n);
|
return restrict::<T>(x, 1, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------
|
||||||
|
// METHODS Vectors to sets
|
||||||
|
// ----------------------------------------------------------------
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
|
pub fn vec_to_set<T>(x: &Vec<T>) -> HashSet<T>
|
||||||
|
where T: Eq + Hash + Clone
|
||||||
|
{
|
||||||
|
return x.iter()
|
||||||
|
.map(|u| {u.clone()})
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
|
pub fn vec_to_multiset<T>(x: &Vec<T>) -> HashMap<T, usize>
|
||||||
|
where T: Eq + Hash + Copy
|
||||||
|
{
|
||||||
|
let mut counted = HashMap::<T, usize>::new();
|
||||||
|
for u in x.iter() {
|
||||||
|
*counted.entry(u.clone()).or_insert(0) += 1
|
||||||
|
}
|
||||||
|
return counted;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user