stl-kit
Version:
A modern JavaScript & TypeScript standard template library (STL) for data structures and algorithms. Includes high-performance implementations of Stack, Queue, Deque, Linked List, Vector, Set, Map, Tree, Heap, and Graph — inspired by C++ STL. Designed for
33 lines (31 loc) • 1.09 kB
TypeScript
type Factory<T, A extends unknown[]> = (...args: A) => T;
interface VectorOptions<T, A extends unknown[]> {
initValues?: T[];
factory?: Factory<T, A>;
}
declare class Vector<T, A extends unknown[] = [T]> extends Array<T> {
#private;
constructor({ initValues, factory }?: VectorOptions<T, A>);
rbegin(): IterableIterator<T>;
begin(): IterableIterator<T>;
isEmpty(): boolean;
clear(): void;
insertAt(index: number, val: T): number;
eraseAt(index: number): T | undefined;
resize(size: number): void;
pushFront(val: T): number;
pushBack(val: T): number;
popFront(): T | undefined;
popBack(): T | undefined;
emplaceAt(index: number, ...arg: A): number;
emplaceFront(...arg: A): number;
emplaceBack(...arg: A): number;
assign(count: number, value: T): void;
assign(values: T[], start?: number, end?: number): void;
equals(other: Vector<T>, compareFn?: (a: T, b: T) => boolean): boolean;
get front(): T | undefined;
set front(val: T);
get back(): T | undefined;
set back(val: T);
}
export { Vector };