Security News
RubyGems.org Adds New Maintainer Role
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
C++ STL (Standard Template Library) Containers and Algorithms for the TypeScript.
TypeScript-STL is an open-source project providing containers and algorithms migrated from C++ STL to TypeScript. You can enjoy the STL's own specific coantainers and algorithms 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 TypeScript-STL. If you want to know more about the TypeScript-STL, then please read the Guide Documents.
Installing TSTL in NodeJS is very easy. Just install with the npm
# Install TSTL from the NPM module
npm install --save tstl
# If you need only definition, then fetch from the @types
npm install --save-dev @types/tstl
/// <reference types="tstl" />
import std = require("tstl");
let map: std.TreeMap<number, string> = new std.TreeMap<number, string>();
// INSERT ITEMS
map.insert(std.make_pair(1, "First"));
map.insert([4, "Fourth"]); // via Tuple, 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);
TypeScript-STL follows the CommonJS
module.
Use browserify or just include the TypeSript-STL's JS file with the <script>
tag.
<script src="http://samchon.github.io/dist/tstl.min.js"></script>
namepsace std
{
export interface IComparable<T>
{
equals(obj: T): boolean;
less?(obj: T): boolean;
hashCode?(): number;
}
}
C++ STL | TypeScript-STL |
---|---|
Iterator.operator==() | Iterator.equals() |
Iterator.operator*() | Iterator.value |
... | MapIterator.first |
... | MapIterator.second |
C++ STL | TypeScript-STL |
---|---|
it-- | it = it.prev(); |
it++ | it = it.next(); |
advance(it, 5); | it = it.advance(5); |
// Vector
std::vector<int> v(5, 1);
for (auto it = v.begin(); it != it.end(); it++)
std::cout << *it << std::endl;
// TreeMap
std::map<int, std::string> m;
m.insert(std::make_pair(1, "first"));
m.insert({2, "second"});
m.emplace(3, "third");
m[4] = "fourth";
std::cout << m[4] << std::endl;
for (auto it = m.begin(); it != m.end(); it++) // TRADITIONAL METHOD
std::cout << it->first << ", " << it->second << std::endl;
for (auto &x : m) // NEW FEATURE, FULL-FORWARD-ITERATION
std::cout << x.first << ", " << x.second << std::endl;
// Vector
let v = new std.Vector<number>(5, 1);
for (let it = v.begin(); !it.equals(v.end()); it = it.next())
console.log(it.value);
// TreeMap
let m = new std.TreeMap<number, string>();
m.insert(std.make_pair(1, "first"));
m.insert([2, "second"]);
m.emplace(3, "third");
m.set(4, "fourth");
console.log(m.get(4));
for (let it = m.begin(); !it.equals(m.end()); it = it.next())
console.log(it.first, it.second); // TRADITIONAL ITERATION
for (let x of m) // NEW FEATURE, FULL-FORWARD ITERATION
console.log(x.first, x.second);
FAQs
TypeScript-STL (Standard Template Library, migrated from C++)
The npm package tstl receives a total of 11,288 weekly downloads. As such, tstl popularity was classified as popular.
We found that tstl demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.
Security News
Research
Socket's threat research team has detected five malicious npm packages targeting Roblox developers, deploying malware to steal credentials and personal data.