UNPKG

astl

Version:

AssemblyScript-STL (Standard Template Library, migrated from the C++)

111 lines (91 loc) 2.98 kB
# AssemblyScript Standard Template Library ![logo](https://user-images.githubusercontent.com/13158709/98328610-7b5f4d00-2039-11eb-8135-6cf8100a12b3.png) [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/astl/blob/master/LICENSE) [![npm version](https://badge.fury.io/js/astl.svg)](https://www.npmjs.com/package/astl) [![Downloads](https://img.shields.io/npm/dm/astl.svg)](https://www.npmjs.com/package/astl) [![Build Status](https://github.com/samchon/astl/workflows/build/badge.svg)](https://github.com/samchon/astl/actions?query=workflow%3Abuild) Implementation of STL (Standard Template Library) for the AssemblyScript. - Containers - Iterators - Algorithms - Functors **ASTL** is an open-source project providing features of the STL, migrated from the *C++* to the *AssemblyScript*. You can enjoy those STL's own specific *containers*, *algorithms* and *functors* in the AssemblyScript. Below components are list of the provided objects in the **ASTL**. ## Features ### Containers - **Linear Conatainers** - `Vector` - `Deque` - `List` - `ForwardList` - `VectorBoolean` - **Associative Containers** - *Tree-structured ontainers* - `TreeMap` - `TreeMultiMap` - `TreeMultiSet` - `TreeSet` - *Hash-buckets based containers* - `HashMap` - `HashMultiMap` - `HashMultiSet` - `HashSet` - **Adaptor Containers** - *Linear adaptors* - `Stack` - `Queue` - `PriorityQueue` - *Associative adaptors* - `experimental.FlatMap` - `experimental.FlatMultiMap` - `experimental.FlatMultiSet` - `experimental.FlatSet` - `experimental.LightMap` - `experimental.LightSet` ### Algorithms - `<algorithm>` - *binary_search* - *heap* - *iterations* - *mathematics* - *merge* - *modifiers* - *partition* - *sorting* - *union_set* ### Functors - `<exception>` - Exception - LogicError - RntimeError - `<functional>` - *comparators* - *hash* - `<numeric>` - *operators* - *operations* - *special_math* - `<utility>` ## Installation ### NPM Module Installing the **ASTL** in the *NodeJS* environment is very easy. Just install with the `npm`. ```bash npm install --save astl ``` ### Usage ```typescript import std from "astl"; function main(): void { const map: std.TreeMap<i32, string> = new std.TreeMap(); map.emplace(1, "First"); map.emplace(4, "Fourth"); map.emplace(5, "Fifth"); map.set(9, "Nineth"); for (let it = map.begin(); it != map.end(); it = it.next()) trace(it.first.toString() + ", " + it.second); const it: std.TreeMap.Iterator<i32, string> = map.lower_bound(3); trace("lower_bound() of 3 is: " + it.first.toString()); } main(); ```