Package Exports
- tstl
- tstl/algorithm/iterations
- tstl/algorithm/mathematics
- tstl/algorithm/random
- tstl/base/container/MapElementList
- tstl/base/container/MapElementVector
- tstl/base/iterator/ForOfAdaptor
- tstl/container
- tstl/container/Deque
- tstl/container/HashMap
- tstl/container/HashMultiMap
- tstl/container/HashMultiSet
- tstl/container/HashSet
- tstl/container/List
- tstl/container/TreeMap
- tstl/container/TreeMultiMap
- tstl/container/TreeMultiSet
- tstl/container/TreeSet
- tstl/container/Vector
- tstl/exception
- tstl/exception/ErrorCategory
- tstl/exception/LogicError
- tstl/exception/RuntimeError
- tstl/exception/SystemError
- tstl/functional
- tstl/functional/comparators
- tstl/iterator/global
- tstl/thread/ConditionVariable
- tstl/thread/Mutex
- tstl/thread/SharedTimedMutex
- tstl/thread/UniqueLock
- tstl/utility/Pair
- tstl/utility/node
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (tstl) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
TypeScript Standard Template Library

Implementation of STL (Standard Template Library) in TypeScript.
- Containers
- Iterators
- Algorithms
- Functors
TSTL is an open-source project providing features of STL, migrated from C++ to TypeScript. You can enjoy the STL's own specific containers, algorithms and functors in the JavaScript. If TypeScript, you also can take advantage of type restrictions and generic programming with the TypeScript.
Below components are list of provided objects in the TSTL. If you want to know more about the TSTL, then please read the Guide Documents.
Features
Containers
- Linear Containers
- Associative Containers- Tree-structured Containers
- Hash-buckets based Container
 
- Adaptor Containers- Linear Adaptors
- Associative Adaptors- (experimental) FlatSet flat_set
- (experimental) FlatMultiSet flat_multiset
- (experimental) FlatMap flat_map
- (experimental) FlatMultiMap flat_multimap
 
- (experimental) FlatSet 
 
Algorithms
Functors
- <exception>
- <functional>
- <utility>
- <numeric>
- <thread>- ConditionVariable condition_variable
- Mutex mutex& TimedMutextimed_mutex
- SharedMutex shared_mutex& SharedTimeMutexshared_timed_mutex
- (experimental) Semaphore counting_semaphore
- (experimental) Latch latch
- (experimental) Barrier barrier
 
- ConditionVariable 
Installation
NPM Module
Installing TSTL in NodeJS is very easy. Just install with the npm
# Install TSTL from the NPM module
npm install --save tstlUsage
import std = require("tstl");
function main(): void
{
    let map: std.TreeMap<number, string> = new std.TreeMap();
    // INSERT ITEMS
    map.insert(std.make_pair(1, "First")); // Via tuple
    map.emplace(4, "Fourth"); // C++11 Feature
    map.insert_or_assign(5, "Fifth"); // C++17 Feature
    map.set(9, "Nineth"); // Instead of the operetor[](Key)
    // ITERATION
    for (let it = map.begin(); !it.equals(map.end()); it = it.next())
        console.log(it.first, it.second); // (key => number, value => string)
    // LOWER_BOUND
    let x = map.lower_bound(3);
    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);
}
main();Appendix
- Repositories
- Documents
- Extensions