/** * @packageDocumentation * @module std */ import { MultiMap } from "../base/container/MultiMap"; import { IHashMap } from "../base/container/IHashMap"; import { MapElementList } from "../internal/container/associative/MapElementList"; import { IForwardIterator } from "../iterator/IForwardIterator"; import { IPair } from "../utility/IPair"; import { BinaryPredicator } from "../internal/functional/BinaryPredicator"; import { Hasher } from "../internal/functional/Hasher"; /** * Multiple-key Map based on Hash buckets. * * @author Jeongho Nam - https://github.com/samchon */ export declare class HashMultiMap extends MultiMap, HashMultiMap.Iterator, HashMultiMap.ReverseIterator> implements IHashMap> { 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: IPair[], hash?: Hasher, equal?: BinaryPredicator); /** * Copy Constructor. * * @param obj Object to copy. */ constructor(obj: HashMultiMap); /** * 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: HashMultiMap): void; /** * @inheritDoc */ find(key: Key): HashMultiMap.Iterator; /** * @inheritDoc */ count(key: Key): number; /** * @inheritDoc */ begin(): HashMultiMap.Iterator; /** * @inheritDoc */ begin(index: number): HashMultiMap.Iterator; /** * @inheritDoc */ end(): HashMultiMap.Iterator; /** * @inheritDoc */ end(index: number): HashMultiMap.Iterator; /** * @inheritDoc */ rbegin(): HashMultiMap.ReverseIterator; /** * @inheritDoc */ rbegin(index: number): HashMultiMap.ReverseIterator; /** * @inheritDoc */ rend(): HashMultiMap.ReverseIterator; /** * @inheritDoc */ rend(index: number): HashMultiMap.ReverseIterator; /** * @inheritDoc */ bucket_count(): number; /** * @inheritDoc */ bucket_size(index: 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 _Key_eq(x: Key, y: Key): boolean; /** * @inheritDoc */ emplace(key: Key, val: T): HashMultiMap.Iterator; /** * @inheritDoc */ emplace_hint(hint: HashMultiMap.Iterator, key: Key, val: T): HashMultiMap.Iterator; protected _Insert_by_range, InputIterator>>>(first: InputIterator, last: InputIterator): void; protected _Handle_insert(first: HashMultiMap.Iterator, last: HashMultiMap.Iterator): void; protected _Handle_erase(first: HashMultiMap.Iterator, last: HashMultiMap.Iterator): void; } /** * */ export declare namespace HashMultiMap { /** * Iterator of {@link HashMultiMap} */ type Iterator = MapElementList.Iterator>; /** * Reverse iterator of {@link HashMultiMap} */ type ReverseIterator = MapElementList.ReverseIterator>; const Iterator: typeof MapElementList.Iterator; const ReverseIterator: typeof MapElementList.ReverseIterator; } //# sourceMappingURL=HashMultiMap.d.ts.map