class MultiSet(T)
- MultiSet(T)
- Reference
- Object
Included Modules
- Enumerable(T)
- Iterable(T)
Defined in:
datastructure/multi_set.crConstructors
-
.additive_identify : self
Returns the additive identity of this type.
-
.new(elements : Enumerable(T))
Creates a new multiset from the elements in elements.
-
.new(initial_capacity = nil)
Creates a new, empty multiset.
Class Method Summary
-
.from_counts(counts : Enumerable(Tuple(T, Int32))) : MultiSet(T)
Creates a new multiset from the enumerable of {element, count}.
Instance Method Summary
-
#&(other : MultiSet(T)) : self
Intersection.
-
#*(times : Int) : self
Repetition
-
#+(other : MultiSet(U)) : MultiSet(T | U) forall U
Addition.
-
#-(other : MultiSet) : self
Difference.
-
#-(other : Enumerable) : self
Difference.
-
#<<(object : T) : self
Adds object to the multiset and returns
self
. -
#==(other : MultiSet) : Bool
Compares with other.
-
#===(object : T) : Bool
Returns
true
if object exists in the multiset. -
#add(object : T, count : Int32) : self
Adds object to the multiset count times and returns
self
. -
#add(object : T) : self
Adds object to the multiset and returns
self
. -
#clear : self
Removes all elements in the multiset and returns
self
. -
#clone : self
Returns a new multiset with all of the elements cloned.
-
#concat(elems) : self
Adds
#each
element of elems to the multisetset and returnsself
. -
#count(object : T)
Returns the number of times that the object is present in the multiset.
-
#delete(object : T) : Bool
Removes the object from the multiset and returns
true
if it was present, otherwise returnsfalse
. -
#delete(object : T, count : Int32) : Bool
Removes the object from the multiset at most count times and returns
true
if it was present, otherwise returnsfalse
. -
#dup : self
Returns a new multiset with all of the same elements.
-
#each
Returns an iterator for each element of the multiset.
-
#each(&) : Nil
Yields each element of the multiset, and returns
nil
. -
#each_count
Returns an iterator for each tuple of element and count of the multiset
-
#each_count(&) : Nil
Yields each pair of element and count of the multiset, and returns
nil
. -
#empty? : Bool
Returns
true
if the multiset is empty. -
#includes?(object : T) : Bool
Returns
true
if object exists in the multiset. -
#inspect(io : IO) : Nil
Writes a string representation of the multiset to io.
-
#intersects?(other : self) : Bool
Returns
true
if the multiset and the given multiset have at least one element in common. -
#kind_count : Int32
Returns the number of kinds in the multiset.
-
#size : Int32
Returns the number of elements in the set.
-
#subset_of?(other : self) : Bool
Returns
true
if the multiset is a subset of the given multiset. -
#subtract(other : MultiSet(U)) : self forall U
Returns
self
after removing other elements. -
#subtract(other : Enumerable) : self forall U
Returns
self
after removing other elements. -
#superset_of?(other : self) : Bool
Returns true if the multiset is a superset of the given multiset.
-
#to_s(io : IO) : Nil
Writes a string representation of the multiset to io.
-
#|(other : MultiSet(U)) : MultiSet(T | U) forall U
Union.
Instance methods inherited from module Enumerable(T)
accumulate(init : U) : Array(U) forall Uaccumulate : Array(T)
accumulate(init : U, &block : U, T -> U) : Array(U) forall U
accumulate(&block : T, T -> T) : Array(T) accumulate, mex : T mex, mex_sorted : T mex_sorted, tally(*, default : Int32) : Hash(T, Int32) tally, unique : self
unique(&) : self unique
Constructor Detail
Returns the additive identity of this type.
This is an empty multiset
Class Method Detail
Creates a new multiset from the enumerable of {element, count}.
Instance Method Detail
Intersection.
MultiSet{1, 2, 2, 3} & MultiSet{2, 3, 3, 4} # => MultiSet{2, 3}
Repetition
MultiSet{1, 2, 2} * 2 # => MultiSet{1, 1, 2, 2, 2, 2}
Difference.
MultiSet{1, 2, 2, 3} - MultiSet{1, 2} # => MultiSet{2, 3}
MultiSet{1, 2, 2, 3} - [1, 2] # => MultiSet{2, 3}
Difference.
MultiSet{1, 2, 2, 3} - MultiSet{1, 2} # => MultiSet{2, 3}
MultiSet{1, 2, 2, 3} - [1, 2] # => MultiSet{2, 3}
Adds object to the multiset count times and returns self
.
Removes the object from the multiset and returns true
if it was present, otherwise returns false
.
Removes the object from the multiset at most count times and returns true
if it was present, otherwise returns false
.
Writes a string representation of the multiset to io.
set = MultiSet{3, 1, 4, 1, 5}
set.inspect # => "{3(1), 1(2), 4(1), 5(1)}"
Returns true
if the multiset and the given multiset have at least one element in common.
Returns true
if the multiset is a subset of the given multiset.
Returns self
after removing other elements.
MultiSet{1, 2, 2, 3}.subtract MultiSet{1, 2} # => MultiSet{2, 3}
MultiSet{1, 2, 2, 3}.subtract [1, 2] # => MultiSet{2, 3}
Returns self
after removing other elements.
MultiSet{1, 2, 2, 3}.subtract MultiSet{1, 2} # => MultiSet{2, 3}
MultiSet{1, 2, 2, 3}.subtract [1, 2] # => MultiSet{2, 3}
Returns true if the multiset is a superset of the given multiset.
Writes a string representation of the multiset to io.
set = MultiSet{3, 1, 4, 1, 5}
set.to_s # => "MultiSet{3, 1, 1, 4, 5}"
Union.
MultiSet{1, 2, 2} | MultiSet{2, 3} # => MultiSet{1, 2, 2, 3}