Files

51 lines
1.6 KiB
TypeScript

/**
* @packageDocumentation
* @module std.internal
*/
import { IContainer } from "../../../base/container/IContainer";
/**
* Common interface for associative containers
*
* @author Jeongho Nam - https://github.com/samchon
*/
export interface IAssociativeContainer<Key, T extends Elem, SourceT extends IAssociativeContainer<Key, T, SourceT, IteratorT, ReverseIteratorT, Elem>, IteratorT extends IContainer.Iterator<T, SourceT, IteratorT, ReverseIteratorT, Elem>, ReverseIteratorT extends IContainer.ReverseIterator<T, SourceT, IteratorT, ReverseIteratorT, Elem>, Elem> extends IContainer<T, SourceT, IteratorT, ReverseIteratorT, Elem> {
/**
* Get iterator to element.
*
* @param key Key to search for.
* @return An iterator to the element, if the specified key is found, otherwise `this.end()`.
*/
find(key: Key): IteratorT;
/**
* Test whether a key exists.
*
* @param key Key to search for.
* @return Whether the specified key exists.
*/
has(key: Key): boolean;
/**
* Count elements with a specified key.
*
* @param key Key to search for.
* @return Number of elements with the specified key.
*/
count(key: Key): number;
/**
* Erase elements with a specified key.
*
* @param key Key to search for.
* @return Number of erased elements.
*/
erase(key: Key): number;
/**
* @inheritDoc
*/
erase(pos: IteratorT): IteratorT;
/**
* @inheritDoc
*/
erase(first: IteratorT, last: IteratorT): IteratorT;
}
export declare namespace IAssociativeContainer {
}