51 lines
1.6 KiB
TypeScript
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 {
|
|
}
|