/** * @packageDocumentation * @module std */ import { UniqueSet } from "../base/container/UniqueSet"; import { IHashSet } from "../base/container/IHashSet"; import { SetElementList } from "../internal/container/associative/SetElementList"; import { IForwardIterator } from "../iterator/IForwardIterator"; import { Pair } from "../utility/Pair"; import { BinaryPredicator } from "../internal/functional/BinaryPredicator"; import { Hasher } from "../internal/functional/Hasher"; /** * Unique-key Set based on Hash buckets. * * @author Jeongho Nam - https://github.com/samchon */ export declare class HashSet extends UniqueSet, HashSet.Iterator, HashSet.ReverseIterator> implements IHashSet> { private buckets_; /** * Default Constructor. * * @param hash An unary function returns hash code. Default is {hash}. * @param equal A binary function predicates two arguments are equal. Default is {@link equal_to}. */ constructor(hash?: Hasher, equal?: BinaryPredicator); /** * Initializer Constructor. * * @param items Items to assign. * @param hash An unary function returns hash code. Default is {hash}. * @param equal A binary function predicates two arguments are equal. Default is {@link equal_to}. */ constructor(items: Key[], hash?: Hasher, equal?: BinaryPredicator); /** * Copy Constructor. * * @param obj Object to copy. */ constructor(obj: HashSet); /** * Range Constructor. * * @param first Input iterator of the first position. * @param last Input iterator of the last position. * @param hash An unary function returns hash code. Default is {hash}. * @param equal A binary function predicates two arguments are equal. Default is {@link equal_to}. */ constructor(first: Readonly>, last: Readonly>, hash?: Hasher, equal?: BinaryPredicator); /** * @inheritDoc */ clear(): void; /** * @inheritDoc */ swap(obj: HashSet): void; /** * @inheritDoc */ find(key: Key): HashSet.Iterator; /** * @inheritDoc */ begin(): HashSet.Iterator; /** * @inheritDoc */ begin(index: number): HashSet.Iterator; /** * @inheritDoc */ end(): HashSet.Iterator; /** * @inheritDoc */ end(index: number): HashSet.Iterator; /** * @inheritDoc */ rbegin(): HashSet.ReverseIterator; /** * @inheritDoc */ rbegin(index: number): HashSet.ReverseIterator; /** * @inheritDoc */ rend(): HashSet.ReverseIterator; /** * @inheritDoc */ rend(index: number): HashSet.ReverseIterator; /** * @inheritDoc */ bucket_count(): number; /** * @inheritDoc */ bucket_size(n: number): number; /** * @inheritDoc */ load_factor(): number; /** * @inheritDoc */ hash_function(): Hasher; /** * @inheritDoc */ key_eq(): BinaryPredicator; /** * @inheritDoc */ bucket(key: Key): number; /** * @inheritDoc */ max_load_factor(): number; /** * @inheritDoc */ max_load_factor(z: number): void; /** * @inheritDoc */ reserve(n: number): void; /** * @inheritDoc */ rehash(n: number): void; protected _Insert_by_key(key: Key): Pair, boolean>; protected _Insert_by_hint(hint: HashSet.Iterator, key: Key): HashSet.Iterator; protected _Handle_insert(first: HashSet.Iterator, last: HashSet.Iterator): void; protected _Handle_erase(first: HashSet.Iterator, last: HashSet.Iterator): void; } /** * */ export declare namespace HashSet { /** * Iterator of {@link HashSet} */ type Iterator = SetElementList.Iterator>; /** * Reverse iterator of {@link HashSet} */ type ReverseIterator = SetElementList.ReverseIterator>; const Iterator: typeof SetElementList.Iterator; const ReverseIterator: typeof SetElementList.ReverseIterator; } //# sourceMappingURL=HashSet.d.ts.map