Module sets

The sets module implements an efficient hash set and ordered hash set.

Note: The data types declared here have value semantics: This means that = performs a copy of the set.

Types

TSet[A] = object 
  data: TKeyValuePairSeq[A]
  counter: int
a generic hash set
TOrderedSet[A] = object 
  data: TOrderedKeyValuePairSeq[A]
  counter, first, last: int
set that remembers insertion order

Procs

proc len[A](s: TSet[A]): int
returns the number of keys in s.
proc card[A](s: TSet[A]): int
alias for len.
proc contains[A](s: TSet[A]; key: A): bool
returns true iff key is in s.
proc incl[A](s: var TSet[A]; key: A)
includes an element key in s.
proc excl[A](s: var TSet[A]; key: A)
excludes key from the set s.
proc containsOrIncl[A](s: var TSet[A]; key: A): bool
returns true if s contains key, otherwise key is included in s and false is returned.
proc initSet[A](initialSize = 64): TSet[A]
creates a new hash set that is empty. initialSize needs to be a power of two.
proc toSet[A](keys: openarray[A]): TSet[A]
creates a new hash set that contains the given keys.
proc `$`[A](s: TSet[A]): string
The $ operator for hash sets.
proc len[A](s: TOrderedSet[A]): int {.inline.}
returns the number of keys in s.
proc card[A](s: TOrderedSet[A]): int {.inline.}
alias for len.
proc contains[A](s: TOrderedSet[A]; key: A): bool
returns true iff key is in s.
proc incl[A](s: var TOrderedSet[A]; key: A)
includes an element key in s.
proc containsOrIncl[A](s: var TOrderedSet[A]; key: A): bool
returns true if s contains key, otherwise key is included in s and false is returned.
proc initOrderedSet[A](initialSize = 64): TOrderedSet[A]
creates a new ordered hash set that is empty. initialSize needs to be a power of two.
proc toOrderedSet[A](keys: openarray[A]): TOrderedSet[A]
creates a new ordered hash set that contains the given keys.
proc `$`[A](s: TOrderedSet[A]): string
The $ operator for ordered hash sets.

Iterators

iterator items[A](s: TSet[A]): A
iterates over any key in the table t.
iterator items[A](s: TOrderedSet[A]): A
iterates over any key in the set s in insertion order.
Generated: 2013-05-21 09:55:20 UTC