astl
Version:
AssemblyScript-STL (Standard Template Library, migrated from the C++)
111 lines (91 loc) • 2.98 kB
Markdown
# AssemblyScript Standard Template Library

[](https://github.com/samchon/astl/blob/master/LICENSE)
[](https://www.npmjs.com/package/astl)
[](https://www.npmjs.com/package/astl)
[](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();
```