Struct multiset::HashMultiSet
[−]
[src]
pub struct HashMultiSet<K> { // some fields omitted }
A hash-based multiset.
Methods
impl<K> HashMultiSet<K> where K: Eq + Hash + Clone
[src]
fn new() -> Self
Creates a new empty HashMultiSet
.
Examples
use multiset::HashMultiSet; let multiset: HashMultiSet<char> = HashMultiSet::new();
fn from_vec(v: Vec<K>) -> Self
Creates a new HashMultiSet
from the elements in a Vec
.
Examples
Count occurrences of each char
in "hello world"
:
use multiset::HashMultiSet; let vals = vec!['h','e','l','l','o',' ','w','o','r','l','d']; let multiset = HashMultiSet::from_vec(vals);
fn total_elements(&self) -> usize
Counts all the elements, including each duplicate.
Examples
A new empty HashMultiSet
with 0 total elements:
use multiset::HashMultiSet; let multiset: HashMultiSet<char> = HashMultiSet::new(); assert_eq!(0, multiset.total_elements());
A HashMultiSet
from vec![1,1,2]
has 3 total elements:
use multiset::HashMultiSet; let multiset = HashMultiSet::from_vec(vec![1,1,2]); assert_eq!(3, multiset.total_elements());
fn distinct_elements<'a>(&'a self) -> Keys<'a, K, usize>
Returns all the distinct elements in the HashMultiSet
.
Examples
A HashMultiSet
from vec![1,1,2]
has 2 distinct elements,
namely 1
and 2
, but not 3
:
use multiset::HashMultiSet; use std::collections::HashSet; let multiset = HashMultiSet::from_vec(vec![1,1,2]); let distinct = multiset.distinct_elements().collect::<HashSet<_>>(); assert_eq!(2, distinct.len()); assert!(distinct.contains(&1)); assert!(distinct.contains(&2)); assert!(!distinct.contains(&3));
fn insert(&mut self, val: K)
Inserts an element.
Examples
Insert 1
into a new HashMultiSet
:
use multiset::HashMultiSet; let mut multiset: HashMultiSet<i32> = HashMultiSet::new(); multiset.insert(1);
fn count_of(&self, val: K) -> usize
Counts the occurrences of val
.
Examples
use multiset::HashMultiSet; let vals = vec!['h','e','l','l','o',' ','w','o','r','l','d']; let multiset = HashMultiSet::from_vec(vals); assert_eq!(1, multiset.count_of('h')); assert_eq!(3, multiset.count_of('l')); assert_eq!(0, multiset.count_of('z'));