{"_id":"tstl","_rev":"379-f1bd0a547f8e1858b23cf06db7a4ba3e","name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","dist-tags":{"latest":"3.0.0","next":"3.0.1-dev.20240330"},"versions":{"0.0.0":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"0.0.0","dependencies":{"typescript-stl":"^1.2.0"},"homepage":"https://github.com/samchon/typescript-stl","repository":{"type":"git","url":"git+https://github.com/samchon/typescript-stl.git"},"bugs":{"url":"https://github.com/samchon/typescript-stl/issues"},"licenses":[{"type":"BSD 3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","vector","deque","list","queue","stack","hash","tree","map","set","iterator"],"_id":"tstl@0.0.0","scripts":{},"_shasum":"8948e369c7e20bbdbcb9921e4f22964b2734a600","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"8948e369c7e20bbdbcb9921e4f22964b2734a600","tarball":"https://registry.npmjs.org/tstl/-/tstl-0.0.0.tgz","integrity":"sha512-wNha5kVh+UjH2qyci4HXBzOh4/fpAlCt8avSUYLE4Yyh48ix+vHQ0PWhmiXAOdnmZiWQcSwyUCf0309Cmqh14g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICuIrhhDZulX/UGeDolAoy2kLLGJu3DWTl26As4/5Tl9AiAuRBtucuaWVjENlmKpHg0OVfUHHzV/PCGmWINLbpnN0A=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tstl-0.0.0.tgz_1477543079337_0.6744871812406927"},"directories":{}},"1.3.0":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.3.0","homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"3c1ff2ebb051cd07badf5e80200c874a0c9ab4d1","_id":"tstl@1.3.0","scripts":{},"_shasum":"660503bd8a8ebca44148edfcdcd9d1bab967a983","_from":".","_npmVersion":"3.10.8","_nodeVersion":"7.0.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"660503bd8a8ebca44148edfcdcd9d1bab967a983","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.3.0.tgz","integrity":"sha512-gHbvgUmIuyCN1D1M8EnqmehZNYf+NPAGkk4FzgJf5DghU1mMB/gj7iblQsJiqZRsviMePjmqY6kJ81p9SavXoA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEhEJYDKZiIOZN5aJS5zkJw7PQNCosE9CxaxTgBd7c8XAiEAgaSKUcK8ta7HM/0Io8bM6XQcASFxHSKmnEBeobRRgAk="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tstl-1.3.0.tgz_1482139307398_0.8051273270975798"},"directories":{}},"1.3.1":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.3.1","homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"fd03676e93e959872909a5fc123cdae05d1e4b8c","_id":"tstl@1.3.1","scripts":{},"_shasum":"040dd6daa18db1d721979a03dc770310d1e155ca","_from":".","_npmVersion":"3.10.8","_nodeVersion":"7.0.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"040dd6daa18db1d721979a03dc770310d1e155ca","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.3.1.tgz","integrity":"sha512-m+B82j2QjiZNiGzsXWFH6kEbA6ijj1oDIWWTcIvQf1VK7LnNJFDvB8nV4dgdiQ0pVvZjQMbso/yuZKn3uigwMw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfqFfJlFcxzpHkdTBHjrxkJPYjv4REJxeE0KG8cskqLgIgT0ur9M2CbcrhOUIuXOwMT5kAzc/+CxKrJrpLuZ/8O8k="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tstl-1.3.1.tgz_1482202775949_0.592477141879499"},"directories":{}},"1.3.2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.3.2","homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"95bbe0b135645dab7bb1872f089f14296cf096f1","_id":"tstl@1.3.2","scripts":{},"_shasum":"92b7906a4189bb1974a89919496962e6f4615e60","_from":".","_npmVersion":"3.10.8","_nodeVersion":"7.0.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"92b7906a4189bb1974a89919496962e6f4615e60","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.3.2.tgz","integrity":"sha512-SXS1WKXbto43jiVTCeIbHJFP4OvkdYIZqsHwR5VT1gtjYN3MygBhMhaL3PBC8tkK0fgNUmJEoMWIFxyYWAnkoA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDebVljLrXKWBWE+PdrEMsLIxOgMPrzPzojMGBe2c9m9QIhAKSGmURaLxAmZX/jacnNLsYmRDdIQb0VfBF2x1CRr5+I"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tstl-1.3.2.tgz_1482481805767_0.8017682421486825"},"directories":{}},"1.3.3":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.3.3","homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"5d89cbc00ab402e263fd9456829c2015a3d9f4e3","_id":"tstl@1.3.3","scripts":{},"_shasum":"62d0ac4de2629203d412c11710627f0d54646474","_from":".","_npmVersion":"3.10.10","_nodeVersion":"7.3.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"62d0ac4de2629203d412c11710627f0d54646474","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.3.3.tgz","integrity":"sha512-eWZzJaho7hijPpUtb1ayLv972ZQBfWiowr8uyLkZrSgk5e1LEF5n2x0GZNLi3HaXXY9QrWaSC5lEUvAUMPxvVA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCiomb0cyLAVI53p4nE+z7CUFEK2Wf6onQe6P7czkRbAgIhAORa8Yb53gkXmN919vcCNNOJr62YzkRdD6bOExElGGdD"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tstl-1.3.3.tgz_1482764911492_0.19246158748865128"},"directories":{}},"1.3.4":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.3.4","homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"5d89cbc00ab402e263fd9456829c2015a3d9f4e3","_id":"tstl@1.3.4","scripts":{},"_shasum":"7d713a1638fc1d1d0bc7324896e0f525fbb49426","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"7d713a1638fc1d1d0bc7324896e0f525fbb49426","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.3.4.tgz","integrity":"sha512-aGK4XVKALe1ZWyTFX97/p/AQcmjqSDyF3PY7Fpnd/gzAuI1oWFtRwDy9FytyQGcPjfWIgmaV4pnhJDFvM2ulRw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBzmU1VHGldhBWVnApCtOR6gn+agsONPu3L0uiHij9mZAiB6E2pc5yPLgGPMBcd9WWejCu1W9OVfq9MsNg5+odxQmw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tstl-1.3.4.tgz_1483085235324_0.17755535175092518"},"directories":{}},"1.3.5":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.3.5","homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"6f7aea7972429d8f50850ad5455edf70e6e46ae4","_id":"tstl@1.3.5","scripts":{},"_shasum":"985a375e088e6565b3dc678fce27b8813823e53d","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"985a375e088e6565b3dc678fce27b8813823e53d","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.3.5.tgz","integrity":"sha512-eSip+wP/+kyzj24hX4ITS2IhrLCGR6/iv4zGt/8DIt+Du/OY93KtL8vGeTYQERLPX+ljdP1EsifUUYO+g+cEtg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH3uBz6nOVsX9fu/LFKAWcf/4nZypZQuzLM3Q00ZIt9mAiEA7RuRxlJsol6I+h9gN8HxQ3PY8b94AEDEBHydBjbeUH0="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tstl-1.3.5.tgz_1483097131020_0.2677906299941242"},"directories":{}},"1.3.6":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.3.6","homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"6f7aea7972429d8f50850ad5455edf70e6e46ae4","_id":"tstl@1.3.6","scripts":{},"_shasum":"5a865c620759e1f0255f9a2d0e6038ccc98d895b","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"5a865c620759e1f0255f9a2d0e6038ccc98d895b","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.3.6.tgz","integrity":"sha512-KLbaOT9JoPR7gZ7GzuhLPQZwHAO+QGR2SVZLThX4XfmErEXAQa8DNQJkhq929E47zJRMg7X+Nqx9Xvfkx+cGNw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDpYibDY4RulOtawHOMBIriAp1vKRqG7UAoO8uTsnc1ngIhAJ8hMleBsspibwt9Mu/nFxTMto71ELWNqR/mwLTHcZVN"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tstl-1.3.6.tgz_1483409612128_0.13637981843203306"},"directories":{}},"1.3.7":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.3.7","homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"a8dab448db6b1238fcfdc824f066e2e2b214caab","_id":"tstl@1.3.7","scripts":{},"_shasum":"953e9165178181c3c101e817731314b3dbf3fce1","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"953e9165178181c3c101e817731314b3dbf3fce1","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.3.7.tgz","integrity":"sha512-4kHhI1IkmlJ3y+VB6weZ8fuKH61vcwkjcNryQxVaAMpYrccQlFUNha91WN/kRLSxdPHhl7hRfbpk7nSyoUmvwA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICtZnxu9A5tA23l/fo6UpyaEby2s69/Tf915TpvBGVerAiAk1Sz8VkEeDj/tMCi0YqccOZWGmLiaEmklBYQENqbtHQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tstl-1.3.7.tgz_1483775966708_0.02380850911140442"},"directories":{}},"1.3.8":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.3.8","homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"97aa9ddfd6178766995569cb51135f831c705b99","_id":"tstl@1.3.8","scripts":{},"_shasum":"7de0612947144d99efe0e9053af3c90c81bb0541","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"7de0612947144d99efe0e9053af3c90c81bb0541","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.3.8.tgz","integrity":"sha512-C/3it/SC9EAIR+S0nsURgAqYm9hSomzI4vXySvpXw5yt0+/DgV8wJQv7czS4+1dI0C7IvERcknD0b0v7BVVong==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFmvKfroE5U3nId+NMIdoPB+5PppK7Tia8az9w54fgNwIgNHI7Lr6o+8UJyJsW14EFcZKG6KaIFVuVfQ66f2p1+XQ="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tstl-1.3.8.tgz_1484412532227_0.3944283504970372"},"directories":{}},"1.3.9":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.3.9","homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"97aa9ddfd6178766995569cb51135f831c705b99","_id":"tstl@1.3.9","scripts":{},"_shasum":"c9d0899a94e839f08e8c3354fd8932171266c41b","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"c9d0899a94e839f08e8c3354fd8932171266c41b","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.3.9.tgz","integrity":"sha512-HtoKMB76uF/c0jIHRCQeGW8fFFNgrOoM2NTKeIlPCkOm1fSAAJGqwoqZnpa1J0rrg2YI9DdPyiuLaWh1gJebuw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCU+PdTwSShd+b+TYCrEGcVwVoeH7sT6cemIemqxju9GwIhAN2iO6UojdtkuSBEBJEFenyKC5kxgu5sSe/+YJACR3k9"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tstl-1.3.9.tgz_1485074555218_0.7597873783670366"},"directories":{}},"1.3.10":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.3.10","homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"810c74d135cfdcd25084330ef86ab8e4a20c46f9","_id":"tstl@1.3.10","scripts":{},"_shasum":"42e3116a044e8022212619e5a88c55b7b34fd8ad","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"42e3116a044e8022212619e5a88c55b7b34fd8ad","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.3.10.tgz","integrity":"sha512-WUntSl9ok70wg55VOwe2lyXxRX/FDLC3NCkmYyVmy2qDiYO1xM4nNGpuzapsWMfB5ij38Tpb57go4Fw4RuaLNw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA1T+hjLYRjAP6WW1sB7VV7s9NwPpQbCvsPdyKi4juGaAiEArWBZYzrp07/5EoekmmbqAZ4iZoFydhjkAMwWcR26NhY="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tstl-1.3.10.tgz_1486213055066_0.575918429531157"},"directories":{}},"1.3.11":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.3.11","homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"2cd24daf888c5fa459a552842f1952e223c4a335","_id":"tstl@1.3.11","scripts":{},"_shasum":"22c818322d5159820d7b526fd562489015c90de4","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"22c818322d5159820d7b526fd562489015c90de4","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.3.11.tgz","integrity":"sha512-uUmuodxBKgcgAuy5jbIXjDK4kQdJE++8+aw4vVn0QbmL2cCNvm30VCn2MmMvex09iDWFkyCfYLC2tuyz3U/dYw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHpRVsE0SdMP4w1wiR2Cdn9VLzUaaOogLRlJifzxjoNDAiEA5AFv4+i6TiUpaZ6QudB6sX/BL3SmzE3KONVJTj6010A="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tstl-1.3.11.tgz_1487430362655_0.2796887478325516"},"directories":{}},"1.3.12":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.3.12","homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"2cd24daf888c5fa459a552842f1952e223c4a335","_id":"tstl@1.3.12","scripts":{},"_shasum":"2c1290c400771f43a5432c7abb08c6dd1a340b9f","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"2c1290c400771f43a5432c7abb08c6dd1a340b9f","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.3.12.tgz","integrity":"sha512-Z5D8z/FrHINXsugPJX0kjhZgf2kLN6376LbDdvDNNJwZEtHqgd7PlZ8dexyk9/jn7D5/TSR9BeYgllx55p8Osg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTnz+h3nljFkTXjgpcUpaNjzDi3//ZDB3t2RzpnoYFsgIgUFaz/Di4nTrPtd+MHIB0zWFXkm2FeKpUVoftLTr8K2w="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tstl-1.3.12.tgz_1487553622359_0.8152984268963337"},"directories":{}},"1.3.13":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.3.13","homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"2cd24daf888c5fa459a552842f1952e223c4a335","_id":"tstl@1.3.13","scripts":{},"_shasum":"dd28a27ebdc6f0fcb1ab5287cc822be9ba232fd2","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"dd28a27ebdc6f0fcb1ab5287cc822be9ba232fd2","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.3.13.tgz","integrity":"sha512-sPlRqc209f5oJmqHSAO3Xvq2wcnu5TDe/wXyByeJ4gtBzSLXcfN/OgCMMTa4zYCq1u1dtcaQ2UeDBip6cIbqPA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDB5ITB7MYV1XithBHL1smmbwgy6CJc0L0qX4xwVTlqdAiBmB7EqyCVnAd5vhEZOiWdoH4W16LzshbAp4vCjNHEz9Q=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tstl-1.3.13.tgz_1487553900264_0.9690357365179807"},"directories":{}},"1.3.14":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.3.14","homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"2cd24daf888c5fa459a552842f1952e223c4a335","_id":"tstl@1.3.14","scripts":{},"_shasum":"5e82a6725af351b25d6615b58edfa445995f2530","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"5e82a6725af351b25d6615b58edfa445995f2530","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.3.14.tgz","integrity":"sha512-fRwvTsvAx0flpJrl0kS9qsH2L61y9m9NpXN+KBh73D8YFED0xGvVUVjD2FxLwaf7sM1TKZRCKnvRT6RRpaXjeQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDr/BnXoVLb1iy1a9R4FgXsj7b7mNhaetBxxr1XjV51oQIhAKGA0ZXs1MrkcpItqyoCeEbxBAY9qrlv00xIzwqxb0ZE"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tstl-1.3.14.tgz_1487561989525_0.7524120558518916"},"directories":{}},"1.4.0":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.4.0","homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"2cd24daf888c5fa459a552842f1952e223c4a335","_id":"tstl@1.4.0","scripts":{},"_shasum":"3a9a198abd713a54a336613fba56f7a4ed20d0a1","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"3a9a198abd713a54a336613fba56f7a4ed20d0a1","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.4.0.tgz","integrity":"sha512-XQkDWEjmiuN+cbv91ZuheSpGGuKCYr/b89huO+NUQ6lKtPwRTx9XFDRUIWpODMmgDpXXNZZDSXATIa5ef1zSbw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0gW1Peq0cRqB8Wt/ZQce2MR71TEeNJotChuQAedsRRgIgfkCvvlkDgcGL8B1Rbg1j55zIK6Huj7PhKvGaJkhMSFM="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tstl-1.4.0.tgz_1487562841338_0.9206829741597176"},"directories":{}},"1.4.1":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.4.1","homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"c547fc7c62a12ba788352324f9f610aeb46b0ea5","_id":"tstl@1.4.1","scripts":{},"_shasum":"c8043c845a9601be2e7501ef5cd0aca8a27f242f","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"c8043c845a9601be2e7501ef5cd0aca8a27f242f","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.4.1.tgz","integrity":"sha512-gaCzG6owgG4GV6b8eTw9Rub4BZlp7E822U7cjDZp2WXWYuUvdztJhHifIB2uZcJ4bRh/cEcB0VnJi8WE+ysQdA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgBd8X1K1FARX4dN/09IR5z8btxX7b7b2g/WOYrcrXrQIgDWbE0MzsjaWi3imY5ivlKB2mfaosq7gsQYJ+LEQLSC8="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tstl-1.4.1.tgz_1487608244131_0.594826674554497"},"directories":{}},"1.4.3":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.4.3","devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"9a1e825f6384077cec25733b8d22de8061bb938f","_id":"tstl@1.4.3","scripts":{},"_shasum":"fcf8217b901af51fc508fae3225abf3272aa8dc8","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"fcf8217b901af51fc508fae3225abf3272aa8dc8","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.4.3.tgz","integrity":"sha512-SUg7gI4wCKlEDlvJok5ZIKQ2+3pVyJFJp52tjbpC8ILwPzepJaKanLb8DOu7a85NJ43JE0RW45NeWQ01k6y2VA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCn3NRhX14dlCOpKhH9Yj77Ow2kQ+jb5Lseg8nBJ4MmngIhAPZdhwdxb0d5nqaULAunIu2HEOngzOUPCRUkVebfA02T"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tstl-1.4.3.tgz_1489330826553_0.3892004790250212"},"directories":{}},"1.4.4":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.4.4","devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"cf9c3fc3fff1ffccb6de7a11b3579180a3853fcd","_id":"tstl@1.4.4","scripts":{},"_shasum":"3610dd5bd7d1f513288a9501f69ed8f669012052","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"3610dd5bd7d1f513288a9501f69ed8f669012052","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.4.4.tgz","integrity":"sha512-UYQlogMCkkkXM6knZH+MWxvbyuJqE+lEeGPcpSzSELxsAYa0Yho0edk7ebRbCnQo45lxPzPsXfFRTdohJGHnoQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMxDv75YLSvCM8y4e6KkNChSYlf71DXvuLSx+67AA17gIhAKrEEMSsfOKpeddsaAaYKZz/xvPLP5e10I+2nvKWSbH/"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tstl-1.4.4.tgz_1490992270469_0.534629715140909"},"directories":{}},"1.4.5":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.4.5","devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"cf9c3fc3fff1ffccb6de7a11b3579180a3853fcd","_id":"tstl@1.4.5","scripts":{},"_shasum":"7371460b7c38ef24a090cc406a0205261f656571","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"7371460b7c38ef24a090cc406a0205261f656571","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.4.5.tgz","integrity":"sha512-sikspoWfxuFnjadbw32NKg8KPQn/67dM3qH9EWu0B6HSFXNNfJYymeVMqnYSckNRYDZyMM2wAqUAcHyEncdbUQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDanWqUGUixp5jIcjxMzLjfLmYenZcy99V/58f/riepqAIgGHjfpx2BnJsm6OsIDbEaCxd0XJ512UPLJ5DIMfjnUe8="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tstl-1.4.5.tgz_1491020372285_0.2611822411417961"},"directories":{}},"1.4.6":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.4.6","devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"ff51f75ebfa9015b90a3860982d7e941fe48eb37","_id":"tstl@1.4.6","scripts":{},"_shasum":"160cf885c36778fdbeda59d9563c911b96030de7","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"160cf885c36778fdbeda59d9563c911b96030de7","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.4.6.tgz","integrity":"sha512-FIsWJ8HkgZh4FyPBtLraLToj1rtryrf9ZklABHPOvPPWQm22TSxhpYM+8jC4gUfNw4inMZH3gitHlkRdAfw4pQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7UGheq8/xJOnBpmHQ2PUIOBIyZDSnIIfv/n2m3vtxGgIhANrpgsi97ApOSGoe/FIAJFuvXVZxj1PC6kp3iSox3qdr"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tstl-1.4.6.tgz_1492097798568_0.6534562793094665"},"directories":{}},"1.5.0-dev.20170416":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.5.0-dev.20170416","devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"eddb4935e09ceac5dd316ac7b44e183e9ff339fc","_id":"tstl@1.5.0-dev.20170416","scripts":{},"_shasum":"7fdffd42caf45dc665cfb3a17b260baa0d5362ac","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"7fdffd42caf45dc665cfb3a17b260baa0d5362ac","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.5.0-dev.20170416.tgz","integrity":"sha512-GUCrmXaCRtbXaJb1yINqeoZm5gwxKFLsOyqxF1LThmlsau/RLGTlM2zAmch6Ji1we/chBnVMrweeeBvtSu56Bw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVwkomoNvAwLVZM9IzdKyajd5QFdNBrKQCJTQjAHlmcgIhAIWb5OdCGInvzg9RqV4NfYxJev0FUCoefRWUhbEHtgFG"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tstl-1.5.0-dev.20170416.tgz_1492284362672_0.8062340167816728"},"directories":{}},"1.5.0-dev.20170416-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.5.0-dev.20170416-2","devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"bb002f43f7842c779708d64ca97a00c2807c63a3","_id":"tstl@1.5.0-dev.20170416-2","scripts":{},"_shasum":"1dbdd27a67a9d08047acf757e4c6d87384ed2a80","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"1dbdd27a67a9d08047acf757e4c6d87384ed2a80","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.5.0-dev.20170416-2.tgz","integrity":"sha512-8BCCNd/dF7VrWfEY9mqxRIvJMGbqDjBf3UedRtUDxgIAUsngkUmoJKRRhEHwi0bhAMON5APU09+S/zpqK+S85g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCVfhTjX4RlLpcywwHr2ZBY0K0aZr2Xk+z/sxDyPg0n2wIgRpF1y0K+WHu1BgioF6I98lDOcQlOBv9LdlsmdCakLjM="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tstl-1.5.0-dev.20170416-2.tgz_1492287155774_0.8888877052813768"},"directories":{}},"1.5.0-dev.20170416-3":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.5.0-dev.20170416-3","devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"bb002f43f7842c779708d64ca97a00c2807c63a3","_id":"tstl@1.5.0-dev.20170416-3","scripts":{},"_shasum":"4ffcc0687f9cf82084c3b2615af3e76179e167df","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"4ffcc0687f9cf82084c3b2615af3e76179e167df","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.5.0-dev.20170416-3.tgz","integrity":"sha512-9GfFX8ywGzwFHrIvoDavTzvRls3MyJz9eb6jBdcQzAQOCmKaH2G5XpGdNsb/ooo1kEzqUWBDUlwGiNK2ZXpFVw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDVUvG9SWIowgZ13FfvauzhSkn7cm/ZeXFLW0522slJuwIgHgNF68a5MPZLcxfvbsakyfnhaYpU9Z5fI7yRmJXQ+nY="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tstl-1.5.0-dev.20170416-3.tgz_1492327372960_0.5348292207345366"},"directories":{}},"1.4.7":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.4.7","devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"7cadb438463fa44fa5fae61007f3da088846cd02","_id":"tstl@1.4.7","scripts":{},"_shasum":"2b4d5ffdfc978a537dfd126f3750acd04550fa59","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"2b4d5ffdfc978a537dfd126f3750acd04550fa59","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.4.7.tgz","integrity":"sha512-GozfCpbVgXq9MNPyTMTOtaHuGLJskCITxxhtgoXx+jucO0GUYOxpGMl38A5p3JeDhahNizY2+r3KUG4AoXyTxw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/sL7xn9VG0Ys54ttAgw7qbAhBHzY9ci3mb7hOGzsj7gIhANBKS1ktcAmmltxhagPNPBfLAvizHlZDe/RNBulDYeXw"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tstl-1.4.7.tgz_1492358701258_0.5529472397174686"},"directories":{}},"1.4.8":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.4.8","devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"0abe12d596381a0ef89e4263fafabf8023aa5b8e","_id":"tstl@1.4.8","scripts":{},"_shasum":"e4fe65c9537915e3c1045a5041b25c76068ffeba","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"e4fe65c9537915e3c1045a5041b25c76068ffeba","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.4.8.tgz","integrity":"sha512-Xt34SB6ffsb6Qm5JTnxqxhjtLnSQVT5VpIOvYnj+tDPpjChrWDFcLTPIK71a99wHbW1xDNSKlyqJ+tQyxK4YHA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDW/DWKyui7lJYyJiAVVI9JSwag+DuzFgONT+8hBeah5AIgLK+SJSoaeKopcyyNi49dtMsy46dBuIckVfmGNmz/DnY="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tstl-1.4.8.tgz_1492359574493_0.5572082009166479"},"directories":{}},"1.4.9":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.4.9","devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"9362cf68bb9e511334f03b4e94fd57b3a0eb8598","_id":"tstl@1.4.9","scripts":{},"_shasum":"e863fb04699d124670280aad7d972633321737a2","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"e863fb04699d124670280aad7d972633321737a2","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.4.9.tgz","integrity":"sha512-Ss7OuliTDmJ55+keb7VHsTpL9I7yoaXC/TR9wYKSTiiVIuQRPRcu6h4yQQZzF/ljGe9B9SBwe3iKfd8bdzGlig==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzMbRM5JPndBWicd2ca5lCHNvP2TYepAVWeeAeWUgmNAIhAPGbFRsGU3EmgZyNy/KIahc+3fByiS+r8nNMh3OX2lK6"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tstl-1.4.9.tgz_1492930236320_0.2518286183476448"},"directories":{}},"1.4.10":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.4.10","devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"e3f1bdd3374c64ceb4f0c37d999975f62d9b935d","_id":"tstl@1.4.10","scripts":{},"_shasum":"1e47f6805d506e788ea5476e6e549f2bad63cfa6","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"1e47f6805d506e788ea5476e6e549f2bad63cfa6","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.4.10.tgz","integrity":"sha512-9vEpJYcDBRQSfZhrKCoId5ENe7DmVFASewjVHTH0b/RaTAAk4dzcdLdMUsU1Dxg2yqwGOJE7wNYpp2mz6jCygQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDqjgAM9HNmRU7tS4c+pgM5GERrltA+u/WUd95krT317QIgJSnC2e9TOhkWKZ6ClSo33UwNPysktCTXGjIWUEEXh+E="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tstl-1.4.10.tgz_1493474004806_0.0662982661742717"},"directories":{}},"1.4.11":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.4.11","devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"e3f1bdd3374c64ceb4f0c37d999975f62d9b935d","_id":"tstl@1.4.11","scripts":{},"_shasum":"f8bbe48d48561d9576afb7a8da89259b4e07b7cf","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"f8bbe48d48561d9576afb7a8da89259b4e07b7cf","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.4.11.tgz","integrity":"sha512-uGdHFCnUPOx+0AbIfqAjRIz8E86QDyiwy2GtSg7iw8n62v+Ij65aCJtHz2uOyZ0KC3Hk/dZpnFA/jxYNRIwmHg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDB3DDhh77pG+8JQHINLUIpEiONlpkzJGRDnrtXBGAVxwIgQYfG/pmfrp029q8jE3sktNhIqXodFCRsxzlhpk601dg="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tstl-1.4.11.tgz_1493567098232_0.13403844041749835"},"directories":{}},"1.5.0":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.5.0","devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"423e42ac86a8d42b97db2a8ea36ee2026230956e","_id":"tstl@1.5.0","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-MDxhiFCsCF4LFgLvkFI9vQGb8iiOoKgYUg817s0GgnY+0/X5bxY/Z3WMazkG1cB2LvjqHRzstlyvo2LT7u/zeQ==","shasum":"2f9f880c15396bca7a7d1171beb5acd5369fea66","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.5.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCBZSjtelWokAK3EINmnxzZrk5HKVm23pNd2m4WB/cv/AIgXMVpazkuVhatOUc3/M8tSrlKry7ZroLTQmVTahl7iE0="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.5.0.tgz_1499617535126_0.42222280404530466"},"directories":{}},"1.5.1":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.5.1","devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"fdd60f7eb58752126ff953d24eeae94a46c9830c","_id":"tstl@1.5.1","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-p399peqlhAPq4Eh3KDol+390oFUcE8hMXF11WLg6JCt8hbZF01OS11KCNTu5W4Oo5BvlvoBS3hEo+3OohBfFeg==","shasum":"a4779f6bf65280e7816b8fe125641ed32182e8ca","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.5.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFaRoOd0JcuBYi/gJ6fxgJ5sBtvHnrylD2sq6xY6KipMAiB6Fb8iCszHTpf531tb9nYyNvdMk+Aqi3m2yZgeu9THmA=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.5.1.tgz_1499699082172_0.6556009503547102"},"directories":{}},"1.5.2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.5.2","devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"01a9e13735fbca59467d55c5ef1ca3a7f5912fa7","_id":"tstl@1.5.2","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-EKIIt+HxbNLifgy0ODQyHo4iQst967WLBZzgn3fH/1HG73gyiAoG++nHllPsBkjEhLM6D5LPCpd869ca4N4Dgw==","shasum":"1582e1d3d2f839f59ccf469a5e238a0c6ed0b660","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.5.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBGZCvRVKl+yvbAQSwJoE6yaRLECGs/lxy8vYR/4D/g8AiEA3MGw7geUDLqzRnwasWjO3Vpzq+Cg20ZoTowSHYnlrR8="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.5.2.tgz_1500181249836_0.8620295175351202"},"directories":{}},"1.5.3":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.5.3","devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","container","library","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"01a9e13735fbca59467d55c5ef1ca3a7f5912fa7","_id":"tstl@1.5.3","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-FI8p3eKdSb4WbOaMUB0HWYYzn5vzdIpUtofVKYRADm4jGOxKd+hLlCBiNQumcsrwcMY5gbyrMjQZlTWKQ7yrZw==","shasum":"fd6e1d50c7f97c82a9c37ebb7f84bd6bd540fc1d","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.5.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEp/UJOuomvkHaGK0GVtqAW+E78uR4kX69gdYuphDJCgIhAOj1KS1e98E4zED1YiuiHlqxObKI6scOhCAnkgaSlPdj"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.5.3.tgz_1500195168279_0.34173261327669024"},"directories":{}},"1.5.4":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.5.4","devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","mutex","thread","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"84be2a865c8c3996dbf444198c050d67dbc449f4","_id":"tstl@1.5.4","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-G3fojNtWiPTlC7Hn2LOaVpbpNF/rpgS6YpoFgAher9YifScqJMUYy8XuC0Yn8R6KEVP9I+8s0j0S9Ad0QQ9F4Q==","shasum":"6f7404358bb5d0c3e1911d23c2693548f7f45a17","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.5.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZkI9pYE2XAoY6jnf6Gfx67OQPqn26PHyk53qkmMxAqQIhAK0u4uOAoZazvfLhRdypYeFJt1xbMtFOBkkDyF1YbIMX"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.5.4.tgz_1501350014379_0.2762815663591027"},"directories":{}},"1.5.5":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","version":"1.5.5","devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","mutex","thread","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap"],"gitHead":"c63fa0472d7cabfcb29bf7ba587469da486aaeb9","_id":"tstl@1.5.5","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-T6lq9OJtBDFh3kqKEx+tly5/0SzO3nvyanWurI4yg/JjpNgwy9yhxEEeflF2EmQhBZx2WyrDZHp7hj0OALnkNQ==","shasum":"74781dc3ab81b3efaccbebe2d0ae0ddaf798a577","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.5.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICriMrf5hX+I/Fglf22KrI6Fw+jOt0Lu01/US9xd33yzAiBA2P2HYmH3DGzWNNnNR6iYGElHUpPS4Wu8PB33oovuig=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.5.5.tgz_1502292339375_0.3845896297134459"},"directories":{}},"1.5.6":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.5.6","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"540f425fd0bb15ebb7bece76a49a779ef35fa6cb","_id":"tstl@1.5.6","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-cezPWGUWtGp2ZWdTUA7J37Y5M8NykVxKQzzlZGEJq5gK4b6VyWb6h0u16Jmf2xE9gYAE2uaMtao57aRN56lSVA==","shasum":"d07cd5c19630a1369692e2ff0bc01c3d2d4fdeee","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.5.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHj0Gc84NGX47RD3MsrHojOnudy9xXAHUekr82tE3xe4AiA6XsjBdR2x7E5/NDL6UiSYem8UfjnTCGJcPpvOcyaedw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.5.6.tgz_1502615846045_0.07856902293860912"},"directories":{}},"1.5.7":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.5.7","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"b7cd67e6051a7be3744267c30cb7c8518a64cf1d","_id":"tstl@1.5.7","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-pxD08orqOLURC6wDQNgVyfbLg72YKD5nn6k4GjwiSPZoOy54bUYq1hmGFNPncLWPihiMk0HPHKZD9pqnfXxmgw==","shasum":"ac40d0610fd6c5ecb0da03f73fa72eb98605287d","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.5.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEap1d74+AjNkULELJ5OdaLo9FgUq72AnBWPdbTLaRBWAiBpavYGOBgCi0BaumNKjn4pUP47+fmHOlOWDQb8Un6vdw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.5.7.tgz_1502818745416_0.26963964849710464"},"directories":{}},"1.5.8":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.5.8","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"4e8e6e84bde768a62c2b3291e7ab863fc5b32abe","_id":"tstl@1.5.8","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-aKq/Yh1ChHhlGd148BcYGJLM+wHE/M5asgp2nSyaRxYlNHxN7TyJJMId2TMww6ebGEguUJwf3LRH+jm7JIKmOQ==","shasum":"7e61b558b965c8acfb78aed143b573a36b900f43","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.5.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHH/mAPpZWcVJBh3nt0LQ6EKH0c+bf/z4MSGev6AmZsgAiEA1CAS1/Ol56jsYPvKqTeyqKxuD+tzgKdoQRYiiitqThw="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.5.8.tgz_1503239539226_0.5643810946494341"},"directories":{}},"1.5.9":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.5.9","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"51f57cb11c3e94b9bf4e04d7a5f16be869fa6696","_id":"tstl@1.5.9","_shasum":"1c69786de1578e05347a9e89533d89163ca2d760","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"1c69786de1578e05347a9e89533d89163ca2d760","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.5.9.tgz","integrity":"sha512-Uvku2OTORRJCY1d3hjahN0qC/g66MJQxMOhMV9J4Sm+JEzKk4+J14Qa+toCUO1XUoa5gR/z7U6eH9wb3L96Bwg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBP5uEqbG2tlCDIlfsgDJYBtWPSl5zXQYQe5f6IiWL/KAiEAj0ZHOgTPIgGe0wrYHwxrmNvHI43wGL3VzJh+FFrnOwc="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.5.9.tgz_1503478170657_0.020810852060094476"},"directories":{}},"1.6.0-dev.20171011":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.0-dev.20171011","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"759e2fd448f4c2918d6e7c041cb3244854999a82","_id":"tstl@1.6.0-dev.20171011","_shasum":"37298b40bc325698f9836ea8f9100993768f6641","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"37298b40bc325698f9836ea8f9100993768f6641","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.0-dev.20171011.tgz","integrity":"sha512-4cWTDv/UjLOIAzHPvLkva+EuEdH/5aU880k9yveATawVVwuOP3LwDIOzMjCrmeYl3NRh+FGdQtXuN4FIrj1olQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAVG+C1sTZFAa9KLujManHBZ+YfVGiWRPdGqL1w3uXXuAiEAoxqADJP4T+InQaEaUQolM8FHAnweTuZarKIRed8P8BM="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.0-dev.20171011.tgz_1507703815419_0.15832668775692582"},"directories":{}},"1.6.0-dev.20171011-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.0-dev.20171011-2","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"759e2fd448f4c2918d6e7c041cb3244854999a82","_id":"tstl@1.6.0-dev.20171011-2","_shasum":"ec00172b38847c84a901baef6d489b917e40e6c2","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"ec00172b38847c84a901baef6d489b917e40e6c2","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.0-dev.20171011-2.tgz","integrity":"sha512-+8djH3/53Nj6HEYGQFXFcAU/jTBme0zPeguSVMysiR2K9jpnSJE/W9FX4ZSOTRgsLjOtlSuWL/2Yjxusptnebg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEOWyV5x0XBDQmZTriHd+qgVK5rHFt1qX+s8H8n7WM3aAiEAxDLo93d4riox0DSzeFPBmuhVLRpQmhtslf+1Uyfs8CY="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.0-dev.20171011-2.tgz_1507704020780_0.4090396882966161"},"directories":{}},"1.6.0-dev.20171013":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.0-dev.20171013","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"759e2fd448f4c2918d6e7c041cb3244854999a82","_id":"tstl@1.6.0-dev.20171013","_shasum":"d686667b62a23e555f56ac105d6d6555ce443c70","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"d686667b62a23e555f56ac105d6d6555ce443c70","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.0-dev.20171013.tgz","integrity":"sha512-dURlg/TNVFosQ9BKadslHp4xUaXlaOXB4Litbn14TPYo25/6mgCFnOK5xGtnbEpzzjjl2V8EJBPZ0Z0p21kDHA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwedERq+YW5GWN5THCxL3k4XB/8Fn3FdzuQap57wYuKQIhAPMW45rxCWMVUDW+9DSEXLB5TWRJbxxO8e468pxCnezk"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.0-dev.20171013.tgz_1507857867889_0.4399167059455067"},"directories":{}},"1.6.0-dev.20171014":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.0-dev.20171014","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"a171d6f56181108ce64b65146faeaea696d617a8","_id":"tstl@1.6.0-dev.20171014","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-MsKU2QivarO6MszjAA50wEiQzwCMg4JJwx8TIiU2dda9pBtEDu4MPOWVG8DJWABPodWib1YzDipDfDqAuJ+JFA==","shasum":"9543317ebaba89353464f0634abbbc90a6172256","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.0-dev.20171014.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAu6wVn9IvUFyk1x4BxP2dUrnKcOSMYe141NLq8tpdgUAiBQtRggRpccxVmQ8cpo1K+5phK1+0bkVKy2WL3Uj90LMw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.0-dev.20171014.tgz_1507992482916_0.6398285296745598"},"directories":{}},"1.6.0-dev.20171017":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.0-dev.20171017","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"a171d6f56181108ce64b65146faeaea696d617a8","_id":"tstl@1.6.0-dev.20171017","_shasum":"5fde232187b78e14ff1e2f8e062a822af714de43","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"5fde232187b78e14ff1e2f8e062a822af714de43","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.0-dev.20171017.tgz","integrity":"sha512-mel+cHAs9xnnJGi59Ilql0tfDiMJIQjsrJ6T4F3JeVU4p6fuAZemwr8HhWG/Z5KgfSWBAOWHrqQZ8KV6qExNIw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGNC3lwiEnJhX8iMy4FhafP1c45Xh0JwztfWwPPrcYMdAiBypjuPAt8p0cl2g4UAiGcMNBMSEXHFjZzq3ddRAbodGA=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.0-dev.20171017.tgz_1508226409790_0.9286377981770784"},"directories":{}},"1.6.0-dev.20171019":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.0-dev.20171019","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"58727dda491cc212dc990091fc03e7de7fc0454c","_id":"tstl@1.6.0-dev.20171019","_shasum":"60f2a3670d51e33eff8392081421facaae76ca83","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"60f2a3670d51e33eff8392081421facaae76ca83","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.0-dev.20171019.tgz","integrity":"sha512-f9n07K+wcI4X1RMYS+LvorJnQ8UZlvEKAuPIkpF79t0MRrnFHuYMUJp3+pra7VMM9i/5ELj88EsNT/H3XCNdjQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDGuTlbf7fNq7cFLBe0un4xld7IW4GuylVvDGNtKYS51AiByiIWcmOqrAxkZZXdf/gvZ/Kw9Rkw1dXcOqVUKKD8Ohw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.0-dev.20171019.tgz_1508373654936_0.7505050115287304"},"directories":{}},"1.6.0-dev.20171022":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.0-dev.20171022","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"0831825f1a8ec9d1b7d2ba9610970a5b44e341cf","_id":"tstl@1.6.0-dev.20171022","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-BqkLCYCvdRKOlSgmBE8cJBQsDPeA+EH0XYYclepV0mnYJtvsEz6josIdXFJSObOKfFLBCACPqRj9urPxxrqeDA==","shasum":"1cb0e7e9bd0f4f7ee99c97b5f0bedc291b1dbd81","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.0-dev.20171022.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDdk9sTE0zu4fbd2O69vbC5rLXo3CFe/qR++LhiP6NSzAiB1CSatIeArCJeYPZ8MEITYsTWj1YzMhO+0kIA6VnWO3Q=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.0-dev.20171022.tgz_1508680825211_0.7057768441736698"},"directories":{}},"1.6.0-dev.20171026":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.0-dev.20171026","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"67eed9f48056d48e6d34ec0f99398fc540ab48fd","_id":"tstl@1.6.0-dev.20171026","_shasum":"921d4abf0f9dd0e3055ee938231bfaa0bc73cd61","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"921d4abf0f9dd0e3055ee938231bfaa0bc73cd61","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.0-dev.20171026.tgz","integrity":"sha512-Y5ZkX6YeOc52gAUTPUcbvaIqmeN0e+wfC5GLWnI3GES6s/ZOs6Ks+piAa/KbkQ41bOiy6OdGZx9ANR/0PJr9SA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBSzPXmZcqsGTiWokW+YGpAp2crAh35LzoKZ3CqDhSGWAiAG9NX+rVO1JfdaWKgBThkWox1gkk8YOScBLUK9udE7yw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.0-dev.20171026.tgz_1509010718247_0.9758728677406907"},"directories":{}},"1.6.0-dev.20171027":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.0-dev.20171027","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"fe2040f8b39e77e4381691e643b800cb7abd0c29","_id":"tstl@1.6.0-dev.20171027","_shasum":"85f0a3d0d800bfdf0b10b377c703d5089dca3fbb","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"85f0a3d0d800bfdf0b10b377c703d5089dca3fbb","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.0-dev.20171027.tgz","integrity":"sha512-KcdzP8BHbk749f1mrH0ju1BxVpJI71c+nnYoWwqaU+5G6PRGsroCAji5S29maXH0Oxhz9GQP2R5RgoDHlLJGSg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcmP732U7wrNNgLqb+RLC3Yi7yFgk6rITyO8anwIdomgIhAN4K25o+iHP89z8u0mNpWuujoPXX0Lx1dkErZAqKv2dL"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.0-dev.20171027.tgz_1509083841625_0.2822515042498708"},"directories":{}},"1.6.0-dev.20171028":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.0-dev.20171028","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"01cae50292865108f642f1c80a92cb52e540bba7","_id":"tstl@1.6.0-dev.20171028","_shasum":"29a82a39bd21315428fd2d9d66f0476da1756f7a","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"29a82a39bd21315428fd2d9d66f0476da1756f7a","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.0-dev.20171028.tgz","integrity":"sha512-gtK3jdq1saHeA6C7TwfirIf+izDeaegfhGeHiPzek355ptCP5OwbVdoOj4PcW2GJLaptyX0Zx5/sc96qw5YlmQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICvzkl2hseu7I8cRSVKdtI+2vj+K75vpPzdgSbOL62a7AiEAhi+U2yZlJfzmX3fOdg25I4tK7h+1qxOxLGsXEzX7naM="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.0-dev.20171028.tgz_1509126162748_0.5799847992602736"},"directories":{}},"1.6.0-dev.20171028-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.0-dev.20171028-2","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"1808f901347d26110e5b991c97b120e784a73463","_id":"tstl@1.6.0-dev.20171028-2","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-J3TMklPkxzm7VEf9HlkefMIEAuReY/w8v2xuoIxMRjWCu1zLNM0qX8/dul7NiZcACkGFKUqhfvjuA0Mo1fJ/7A==","shasum":"40417819cdb8b43b6c62b7c605978e4d597c6ae3","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.0-dev.20171028-2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFaTzda6V2B5z1jHimEibWBEXLi6f2221qm4VE1ph6vwAiAuVbhjUsuTGSKScrLuNhqP8eAFpZu+BOLdCztGjjZ1cQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.0-dev.20171028-2.tgz_1509200981557_0.2285527305211872"},"directories":{}},"1.6.0-dev.20171029":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.0-dev.20171029","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"8cd8116c18db1179bba660c62ed65821ced45ae3","_id":"tstl@1.6.0-dev.20171029","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-2KF0qIdq6norK+Lcd7DlJcUyUL5CRrjYgKSCVYjXvkLd4kK2fDmBbhBHQfJOgYXFFf8wvhemm74ippnHD3UrpQ==","shasum":"c7faa850314bb9d7da17198d1c108b0fd71424b4","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.0-dev.20171029.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWzXKsJB/rgdcNt+NcoVP/c6EahyjOJqLhhnN4FePpIgIgVtV9e44xupCf3Z2v8GEkZ2wB30OBbXq++rqaygo7H38="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.0-dev.20171029.tgz_1509288950025_0.812549065798521"},"directories":{}},"1.6.0-dev.20171030":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.0-dev.20171030","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"1d38f89dd508048054d8c0165bdc3d90b983b701","_id":"tstl@1.6.0-dev.20171030","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-1KSPbVBFcqGUa5NnnpO4hTlxhpgLvZ+pZfLLwWcGX3sIBSyOLQI4b/ChXn0oP2WQXB67c/0h8//5k4h+DHUQIQ==","shasum":"96524faff2b203788ab38bb26382d58ba56e62b0","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.0-dev.20171030.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSgUJ+QkA3easfeTYW/sWOXNad8cOBlylw5irTR/UjDQIgENgzhn1rVC31cQWas7WVYGvlNSOfw0zHxDiu5jo9+TQ="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.0-dev.20171030.tgz_1509289795365_0.3874493925832212"},"directories":{}},"1.6.0-dev.20171031":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.0-dev.20171031","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"2f9ea070b9a872772f319de17e9ebd84cfc1363f","_id":"tstl@1.6.0-dev.20171031","_shasum":"ae6910672c577b72c8347cd1341cc5ce5490f897","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"ae6910672c577b72c8347cd1341cc5ce5490f897","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.0-dev.20171031.tgz","integrity":"sha512-pPIddWXy7v1PyKxLqp+bgRgXJIfO7DRmxcLuLybnP94vH6pktSasSqXgM4QepEN5nWR9Wq0gwKkGtuuf4ujZpg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0Y2JDDh3CJutJ8HNiL/SwvJmMOoRpWXQp202RnQWs6AIgTP+rDnbw6OLNbcaQ8Yc/umgAHU8F4M3wvv24wnk+SHk="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.0-dev.20171031.tgz_1509406784377_0.7142908333335072"},"directories":{}},"1.5.10":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.5.10","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"a96ce934f88afce7a0cf0c07685dc8f0e9a3e495","_id":"tstl@1.5.10","_shasum":"05163bc93d6c247c73abfba649e8660b19f53182","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"05163bc93d6c247c73abfba649e8660b19f53182","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.5.10.tgz","integrity":"sha512-Hoy0NhAJr4MjT0t5XW6hNci00/1zrTpBEDweJZrRJ2EB51gDKcKVgv5uGzgQhdGiy4L4qmeZH+1tcnCFSCkqSw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICfx7Zlw+AaaaP/Blnz7xy+pVjrD7mCwJh6yrPBEMO10AiEAhi3b2BeI+Lh5NwqQkwsU7fdEWG8cVXXHNVuE66kWXKo="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.5.10.tgz_1509501248598_0.8898293296806514"},"directories":{}},"1.6.0-dev.20171102":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.0-dev.20171102","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"fc087f4433fa38090763ad96998d583801a89516","_id":"tstl@1.6.0-dev.20171102","_shasum":"dd2164d165786630c9cc7d75c93291bc5833f40e","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"dd2164d165786630c9cc7d75c93291bc5833f40e","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.0-dev.20171102.tgz","integrity":"sha512-CHKGeShXmTXfVICKxJA1ylRv3RaZqF1ZWQKLfeGxDkhj5GoBirNOalpc/t2sMQT41ZUaFxpIZtHMADhHDatceg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHLAucHQcLkxQPy8RTyykNnxjMSfS8Xtf6rHOMt9fmVgAiBvZ6uGWBc5+/XMHG++HT3/5VWQPgDsrtICwedonIxFpA=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.0-dev.20171102.tgz_1509583001727_0.6966070255730301"},"directories":{}},"1.6.0":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.0","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"103306179de0349f1884faf03f76570f8d472828","_id":"tstl@1.6.0","_shasum":"b7b408c32a899e22ab806712b420042ead807db2","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"b7b408c32a899e22ab806712b420042ead807db2","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.0.tgz","integrity":"sha512-XTIto4g/OhwICRbEhRXJDbWTByAMjVpO3UjKnNdDkxAy0f7WtMbMpe0OrPW1CZY/70GvuEKRi+Cy+MLHSSBVjQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGamezlj3/knQ1TwcANPS0UvL+fXKZt9wwimDHjCh3P+AiEAmw7+usn3ayy3sJRcaF09zF81N6O/GknXB3xVTOuWtjg="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.0.tgz_1509671809687_0.7246715947985649"},"directories":{}},"1.6.1-dev.20171105":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.1-dev.20171105","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"b3ac235a10c981142652f73b254500fda3759846","_id":"tstl@1.6.1-dev.20171105","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-iktzgEN0GGEgIN5OpwY+vxjWEh0JP65MvKxnaVGZJHtmABSzzjK0s145wsGzfPu5px6d3z0xxw+1nMhQXtULJw==","shasum":"37dd7fd42b2ffef97136db06b999478c8692b07d","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.1-dev.20171105.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAS2INMj0carZsbEKdtcWv0Kq0m354ll1Gzpm51EeqJzAiACLlTf5WuSwq6kf86nuXQxp9BYcnfumvTw82Wy0591pQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.1-dev.20171105.tgz_1509843024978_0.31749748485162854"},"directories":{}},"1.6.1-dev.20171106":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.1-dev.20171106","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"5416a8e53780d8235f6773b88180c1cc56063fab","_id":"tstl@1.6.1-dev.20171106","_shasum":"1e1b459b23a8ec28a89b9188ddf03a0c1834cf53","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"1e1b459b23a8ec28a89b9188ddf03a0c1834cf53","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.1-dev.20171106.tgz","integrity":"sha512-GxTsKLiR4AHPrJnwL0rTAv/4lLMpPpml4cjsrULSEbBGA/TY92gnNU7Rq1QXVxmbEhr3ZOKNVcCFLowY9sW9cg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC7mWKbk9pUAVVbpU2ui+Mi4uWuEkOhrp/uBUesRNzEgQIhAKF4YacZjCPsU5f/PzNGOLNpblUA63f0C5nYnstuFKII"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.1-dev.20171106.tgz_1509970753358_0.12307685962878168"},"directories":{}},"1.6.1-dev.20171108":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.1-dev.20171108","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"469459a4a131b9e936a4daf28845452d2613f16a","_id":"tstl@1.6.1-dev.20171108","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-SR4QKPc/wStWDNsQrt1ZaN764TxSkKlzUUKK1EXwx3xFGCQBMPe9W/d0uxVXnC8IIm6jzgZXtaRe8oDJSI4YUA==","shasum":"60b392771378d2788e3f891db964d36f9eb346c4","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.1-dev.20171108.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHg0yDiVoNDMhYd3vAkwtlOgrIyML5jQz/FDAispaMUcAiAdFAm297uK4+aFhuiWYVXhKUCQ02BUUA/vBffKcGZlUQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.1-dev.20171108.tgz_1510150813448_0.6476797929499298"},"directories":{}},"1.6.1-dev.20171109":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.1-dev.20171109","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"7a6e922466c10c6e773e85cab60ab7cf6c55f9c9","_id":"tstl@1.6.1-dev.20171109","_shasum":"f5e86e0a97fac04c3752ddc51ed6d52613044786","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"f5e86e0a97fac04c3752ddc51ed6d52613044786","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.1-dev.20171109.tgz","integrity":"sha512-fy+67MUz+jIX1MXknORqx6Xd1msy1DDkMhd+VNcZu43oUsMub8vm4eF5A8dkVGgHKJSo4Z31Z7DZ5Yax61BCKw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA4+cOydDG0Fb4UyL1JjT6dZAjZm2OA8MDLOoP4K78kzAiBglySTRBZ7XozjVvDZVkSHW0IAnG+VpueFelRPpW+hrg=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.1-dev.20171109.tgz_1510215138618_0.9497493978124112"},"directories":{}},"1.6.1-dev.20171109-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.1-dev.20171109-2","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"01f1c41bf2a8ff4da880df16b189dde8139c5d99","_id":"tstl@1.6.1-dev.20171109-2","_shasum":"452a35988b873081829e5d4c0d82a0b5477296e4","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"452a35988b873081829e5d4c0d82a0b5477296e4","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.1-dev.20171109-2.tgz","integrity":"sha512-R9xe3D3U4PtKNdS2WJbpopBKbOCycJk+sxv7eYtf0M5f7nP/2+tInOtLA89OpvMwSoxKFCf67SQ4FseRveyT0w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHVXgjvnw9iu7hW/AQhblJONTgljvzvBzONAnhjwE8EcAiEAzUYmx8syfPDJlA6npPDU+IYelg01Nx2Avw65vyx/9Z4="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.1-dev.20171109-2.tgz_1510216340881_0.2586335255764425"},"directories":{}},"1.6.1-dev.20171112":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.1-dev.20171112","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"3611e42be2bc11ed91ada09be03e775d8a6aef1e","_id":"tstl@1.6.1-dev.20171112","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-waRDKzo0RNICWM6iCP4dYscvkSJIlDuVEpjesbvNuV6cBZnosNRG5EoMw8pCYUo4OnBUzw8jGD+c3AmDECo2uw==","shasum":"1e0776766df7476f30b50c0c6b4d42528bf332f4","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.1-dev.20171112.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDO3VH34vxRf6OPPkBdvWEvKwx1U22rc9jQ0SNPMfmBJgIhAOo1W1oAQulOpdvlkajLyYCde20iCto9m08lOssLMX9b"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.1-dev.20171112.tgz_1510481055820_0.18246675352565944"},"directories":{}},"1.6.1-dev.20171113":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.1-dev.20171113","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"f289fe201dcd5865eb4c9f75b20a26321b895a48","_id":"tstl@1.6.1-dev.20171113","_shasum":"52c1037b36556b5ea149814c192a94e2cd5edab2","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"52c1037b36556b5ea149814c192a94e2cd5edab2","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.1-dev.20171113.tgz","integrity":"sha512-r1zHqxQRC2Aj9CoenLTUn/rxNXjee204y8B5e+Y+fxZUG1yYIEtgce+z2gjoMxePU+1dgpvYT7EsaU1eNL04KQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF5KISPvZcrnKeubqRsq6f3+aOcWORQRphepKB+F6cafAiB2UCtZSkSPBMtu3V6QLBQMsgY9H5HirnNy4bPF5m0rEQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.1-dev.20171113.tgz_1510543993082_0.5358073886018246"},"directories":{}},"1.6.1":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.1","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"3c0c80b8d7ec46caee98b8187a8e63a4f56081b1","_id":"tstl@1.6.1","_shasum":"c9c20c04bd2a61f6c4cf37f7dd210d7028062d28","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"c9c20c04bd2a61f6c4cf37f7dd210d7028062d28","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.1.tgz","integrity":"sha512-W3tPEQtDsaqENs7feylcllrs3xCcn6n0ogHq8p50PUqiRWysCECeCTGNuSMdOXUo1Q2QFuS0vgrVb7ZQ6FgQ1w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGTY4R/u7Ka40Zecuhvs/NWxvTt51L7LUVpfHRAO4kmSAiEA3q3l3eqdgeruO70MDur2K9zfi8yEfwYwD/KcvU5MfLE="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.1.tgz_1510545864560_0.29254700848832726"},"deprecated":"no export symbol","directories":{}},"1.6.2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.2","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"3b5e43fde7d13c9b7d32f740eba9cb0f17f75cfd","_id":"tstl@1.6.2","_shasum":"78c359fdad5ca5477d2ec6c08b208c93d70319b1","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"78c359fdad5ca5477d2ec6c08b208c93d70319b1","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.2.tgz","integrity":"sha512-xocfg6ssa6ZqccD7WV3Ra0cZQnuT23cckunEN5oaaGoOjM9yXqR3NGDcg5a/N6NOic2RlTAf6NFiHv2Une50Lg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTO3TLvP/+unHbvgXPKa8TlGWv8NgbbOuhtzVhPmdSZwIgYWlQmHtnPO8mMn3W5vqQHn+yGwVL/+nVCVElAvPCDJ8="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.2.tgz_1510546362469_0.2842598434071988"},"directories":{}},"1.6.3-dev.20171122":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.3-dev.20171122","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"48c8b1c077d162f9230fa2e1a9e4e3bbda2dcc90","_id":"tstl@1.6.3-dev.20171122","_shasum":"c0ddeabe0df5a706d21422eeaa7684694b12aa19","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"c0ddeabe0df5a706d21422eeaa7684694b12aa19","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.3-dev.20171122.tgz","integrity":"sha512-EQGk9XK4bl3blqNlqCr+sPX2YIEO0kWPkEB81wN7Ageps1XdSZOkzXMxDr3lrr4X8h+59IxBpq3FFXdvmHL6Tw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXcidAZRblKQHB/INYgVS1lzONPLaB7hzta73KNfGt/wIgNsDcy3J7y+wK1+JQanlcoc0EBXsGUEkIwVgCkBkD3Ys="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.3-dev.20171122.tgz_1511332423543_0.6909632806200534"},"directories":{}},"1.6.3-dev.20171123":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.3-dev.20171123","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"920fa9cdd07708cce28105fa50f2cc2d4b067d3b","_id":"tstl@1.6.3-dev.20171123","_shasum":"2b5661278d1e3b9bee00b6dd6720b8bc5ffe43af","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"2b5661278d1e3b9bee00b6dd6720b8bc5ffe43af","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.3-dev.20171123.tgz","integrity":"sha512-oRclLCKNoS3ckXlfcYI5d12z5bMTA0+MjICGiH0g/hKSKppdUuKyEpBw0wbNwaSSvEOqz08kL9hU9NMynSUQ3g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDexpcDspFmLPm72H9ETxD2Zn/tmm/OS2CB71m4GVQpUwIhAJKiVrQFSOwjY+6Wn+GYZeeCtrBnolaLDYnhYWDPBkOB"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.3-dev.20171123.tgz_1511405595812_0.46035592490807176"},"directories":{}},"1.6.3":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.3","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"f75f097922cab83d3cd91d14d8a090673709945b","_id":"tstl@1.6.3","_shasum":"b5c587645a9ba9964e8be2f163f7197261f50a7e","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"b5c587645a9ba9964e8be2f163f7197261f50a7e","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.3.tgz","integrity":"sha512-fM/Zg15SJS/lcUwMAUHCyx5M9q2L3SnRMPjU7IJPo7h65yBeKyXvhFAUwQfzUb/eQN9oAB3NrbxJVCLTSY0OPQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCN3aMRPqAxeiTh92VPHRK8rX8PwOFzZ0ayWRZ4ZVj+/gIgTjNlBuXiCenymX8bdU62frfEZlIBn3xGkcz2h1lnpm0="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.3.tgz_1511496192178_0.06402473663911223"},"directories":{}},"1.6.4":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.4","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"30f5c0139c8b5dda06cf2918874fb8fa9ddd9bf6","_id":"tstl@1.6.4","_shasum":"3e82cf3df53d4851cab9c97eef8b597116579360","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"3e82cf3df53d4851cab9c97eef8b597116579360","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.4.tgz","integrity":"sha512-753l4yajZbqvmheuYjMBWdOVL6guNiKtt1OzqX3rjcgNmMZVRf3u10A0BAbRsjWuV7J9RYxv69wcegQHzgpz8A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBgEYQt1D1saKewlV2MHYOW3Z8+LCAzGdta0sT8mRZffAiEAlGZuRW/lky97eO5VE7kbQbg0EuKHXGdPszeMneaJH+0="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.4.tgz_1512622805464_0.5954676549881697"},"directories":{}},"1.6.5-dev.20170117":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.5-dev.20170117","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"691350f249c2bb40134bc7cc925297fe73c6d644","_id":"tstl@1.6.5-dev.20170117","_shasum":"ddb0c13e96017db0b64becb86f9b9e0f1793067d","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"ddb0c13e96017db0b64becb86f9b9e0f1793067d","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.5-dev.20170117.tgz","integrity":"sha512-rwDhz3SAvO8jJG/nMzHxRi5HpXdSACfdquz5Iuqi24We2opJADWbEdtxhSUxdujgZvbpPuwsXQNW9Hf+k61DhQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2mtGLi8FzVu65g3BVpyDZaZvWmj2rezyl6iXnkS7eGQIhAKC4bftoddsFbrn5z+VV44l5ELj5d5qwtpr/+TAuT5i6"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.5-dev.20170117.tgz_1516150853307_0.7376079417299479"},"directories":{}},"1.6.5":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.5","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"8599038f0dcc128af7ca2e3f877659a787309035","_id":"tstl@1.6.5","_shasum":"0932a4aeb7c479fbc9c97a211b370cacdd2d8d49","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"0932a4aeb7c479fbc9c97a211b370cacdd2d8d49","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.5.tgz","integrity":"sha512-k6NXZdv3i27rN/H8PL2zVrAypVslzVujQgAj/NfmjfgliDs3iwTmN67VeBszzNtj8/V/Erlm8GY5tpAtg2qgjw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD58GiggEOfUw01litKwBCSVH+FmxO+HsLmk/u9wt2weAIgT8cOhKYiu4rGWRxMReI5zAVDUDk9Tc4XM4s56u+7U10="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.5.tgz_1516151792559_0.257660664152354"},"directories":{}},"1.6.6":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.6","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"8599038f0dcc128af7ca2e3f877659a787309035","_id":"tstl@1.6.6","_shasum":"d0f5673423c33a384b2c8470f3e8df201c086752","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"d0f5673423c33a384b2c8470f3e8df201c086752","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.6.tgz","integrity":"sha512-0vjG3ODBHH1OUmwkz+T/SV5ZKQkBYKew89uA83eDub57zzZWq75zH7Ll7GKUItZ0AeM0Mq6b3lRzT23ancv4bw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIQC01k5aZqi0wB0+HJ5ibGwltHQpljurA8CJljaD433dwQIfZXJ/p2AgVsnn4Ud6E188//vuYU/P7CUqOTJ1H3IN9w=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.6.tgz_1516165188187_0.5688649206422269"},"directories":{}},"1.7.0-dev.20180123":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180123","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"30d4b94e179573dbb264ef79af822a4f3df98088","_id":"tstl@1.7.0-dev.20180123","_shasum":"172403cbb9b309317b556cefc74f15e0eea1906f","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"172403cbb9b309317b556cefc74f15e0eea1906f","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180123.tgz","integrity":"sha512-P5RAdqXjCtRQ4BkhPgzwWKzsz/Rrdg/wzISYNGqsCEmYxfWOYXEH9i583WO7GBeWtoDLzusc7R/XWi876N5iWA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDwqeY47R4+gY6s+AVhZfGb1W84ONL5WNq7AHW1U8GbYAiBrRzRYGdrMLZUOVeXYV9oIP8JCrlcdNFmq6TXisdHJrw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.7.0-dev.20180123.tgz_1516684771066_0.3968927054665983"},"directories":{}},"1.6.7":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.7","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"0a051a2970095d867131a1f03b6c09865002fb0b","_id":"tstl@1.6.7","_shasum":"d81101d053674641d1b48abee2f967f136321722","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"d81101d053674641d1b48abee2f967f136321722","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.7.tgz","integrity":"sha512-tAJQkJ6Ow6CaeS85aCNpbMXZg6zMfPPyEaLMB7HMoukor10oFSHl9vmSfmWaPN1Vebkde74okzL1JlWLqvGI1w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDouv6eVoqPNBbx3prmKPo4B55TbZVBpmn7l27Kxc3mLwIgJhvsDcODAndJAaRE9VCTiwfa4+5PVk/wRiFMBWsWpPs="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.7.tgz_1516686041986_0.548449840862304"},"directories":{}},"1.7.0-dev.20180125":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180125","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"2a24490f6a323b47312752d5a74a264b646b9136","_id":"tstl@1.7.0-dev.20180125","_shasum":"19925f4cb11849ee53a610f4d60e6fe312147546","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"19925f4cb11849ee53a610f4d60e6fe312147546","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180125.tgz","integrity":"sha512-tidxlW0kRqQelJ2JaWQqPqC+f6c84+96B/OIF/nZU17BS0hi4qlV+aiU8wpqwjvybv+be+bBK756nCASeMDCXA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDadKTLoRy9iLQG7Dpp6Kz1IOJ9XJZmMj/zWx+FsC+/WwIgb6u9zDO5uuBuOjw66NyfNskraWcJMPNCuLvf0WmKy7I="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.7.0-dev.20180125.tgz_1516840987984_0.9395909127779305"},"directories":{}},"1.6.8":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.8","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"8562c8d773f1fe2cf0119fbb30edec7fb64d42bb","_id":"tstl@1.6.8","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-c5niypOktJb3iZ83IWTnMjJ32T9CyBn3JGbZEZfeUeuypwLCGNervzb9MtakxnmWvzGtOqKDzHy8D7n+jIcfLw==","shasum":"18ec87c6548ec54f90239ae1f6a7acf3e60892e3","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDb7GXTUJqqRritd3W9MehLBkKs3pFdqNK+/zG6YIZ7aAiEAqB364OzzHrRc+ScC7P+do2wpLdo5mL7n9zF12kF0rn0="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.8.tgz_1516887799135_0.5057658767327666"},"directories":{}},"1.7.0-dev.20180126":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180126","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"72bce8febe202de14846ddd5f9c98665ef838005","_id":"tstl@1.7.0-dev.20180126","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-v7RVxBXuBJx+W3BBZed6o6XBILOHgOVb9tHhH/rdtULXJZoGLbxdkG3Vwa422ran93Y1tD+oRUGhtSklLic6cQ==","shasum":"780ecee93b7851a9508e2ee8c45f51fc210aa395","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180126.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFJ5O4f+cqy9n2A2GDO+282ZtsjvFBkWWKLK0MFjnj3ZAiAUWQsQRkUiRfK7pS+pp/rwgXNqnqk9uV9KsiScieQ6zA=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.7.0-dev.20180126.tgz_1516893364155_0.7290515343192965"},"directories":{}},"1.6.9":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.9","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"09edb755095142750547463b7fa749807e0e1485","_id":"tstl@1.6.9","_shasum":"228fdef1e10afc93800e8bcaf799be1743900256","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"228fdef1e10afc93800e8bcaf799be1743900256","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.9.tgz","integrity":"sha512-Xd+S+H2KTYBnirubZTYuqE4hnvxHzsy7wLKbRuQbaxcZcURLu5PXqGEAjrbzxnseRi7Hnk0lhArys52j1AKDdg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDsM7S7WXFV2sJ/Sikwx5rZ/gL0v1nQZnJAJ2Jf89Eu3wIhAKrFMfiq9KlKOnu12kXK58qAJRm9qNAmxFeTzsmbhj2/"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.9.tgz_1516946143622_0.40502972388640046"},"directories":{}},"1.7.0-dev.20180127":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180127","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"70d56b4204b6a5e4986606326a5ff940f486669a","_id":"tstl@1.7.0-dev.20180127","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-OSnluSDKsEW5Wj2Y7pEz7a4+Er4ZKohV03sVGJQOMIhqO+IPOX2xx30i6o18mVCwPvhjsOEBlStKT+OTi6R2oQ==","shasum":"8897cdcc94def19e5385290ea0d2445e9885a386","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180127.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHf4I+F2Kpn4qNU5rNsghV8JW3t1AhWR3/h1wKr0DSAnAiEA+FMxHBrLInbOEYcUAUmuXkQ0b0FDXLNllMAbz652CgA="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.7.0-dev.20180127.tgz_1516972114156_0.003605673788115382"},"directories":{}},"1.7.0-dev.20180129":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180129","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"e579e4bb8340aa2b993f4c83d75a382446a96cf4","_id":"tstl@1.7.0-dev.20180129","_shasum":"72f455a393f7ce495175d4c85cfc283fb2dc5f0c","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"72f455a393f7ce495175d4c85cfc283fb2dc5f0c","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180129.tgz","integrity":"sha512-Ke2nIGARv6bT2RxshNUEa9/El+Tb6C83yjsxi/vHj8Cji8FVLJ09GjhXSUOAbZaqOPjrbItYRSp+FGltKpDZBQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9jaNNdYOZqusG7nw/s2U+hnSP9g4lXmmv4pBM6mGVygIhANGsCpOY9LOKy3nY4AXeigrt+JSwJzTH0wnNnH5cklww"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.7.0-dev.20180129.tgz_1517210281365_0.0936145109590143"},"directories":{}},"1.6.10-dev.20180201":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.10-dev.20180201","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"09edb755095142750547463b7fa749807e0e1485","_id":"tstl@1.6.10-dev.20180201","_shasum":"46f0ef2a49ece9d2496a3b3657c745a8fe9a07ab","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"46f0ef2a49ece9d2496a3b3657c745a8fe9a07ab","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.10-dev.20180201.tgz","integrity":"sha512-yGsj+1BK/ZJPEf/aH/kP+qlBnbCf2toitLm3+UckagWa5w0w7p+rc+7y4d/hXcbwCjeMTOvn+RUTGlrir6d/+A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDicJcnOAhfJ28oaEZ+SJ+mp5xySchOsF29iCdWLPAL/AiBIYb2U6q2DRKGGVreRF+/U2EGmEdtVYk3/exPXoeiuIg=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.10-dev.20180201.tgz_1517465614002_0.02859278372488916"},"directories":{}},"1.6.10":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.10","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"09edb755095142750547463b7fa749807e0e1485","_id":"tstl@1.6.10","_shasum":"41ba7bd69dacf11021ec5a208c45c5d6a9cd182e","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"41ba7bd69dacf11021ec5a208c45c5d6a9cd182e","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.10.tgz","integrity":"sha512-Ear41iK4wsX8/MwfTQH9SwufL6ax1Awfrr6zfHTcAZiFfhQeTOSv1Mq1RzICfAupZQw8HGrzD6gcad/zdQ0f3w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCxIMvQ3xV3zJlwrD5boo4+/omujAOiAAewaDe2k160GwIhAJlYHjoYPBIBGS3lwU7LDA7LbpmV46FXAVN1PMP2ztzA"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.10.tgz_1517466015427_0.8330746660940349"},"directories":{}},"1.6.11":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.6.11","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"ccb9b1fd3f84f5466126afbf98f9ea54f0fab58f","_id":"tstl@1.6.11","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-aBBy6wx7CoRlHcig3SXSvSLK9tnjUe034Ni0V1lCk76BNZf+nVsvjTv0tPOOLqqrH2ZlwsQbqKFFLmibG62smA==","shasum":"be7d69607710e0b5044caebe1353caf6f9c2893d","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.6.11.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUOu7xAeRD6CqU0Gip2EmkIIHcOpQH4/vWScqOhXyNMgIgZKet7SSM5e6L0jhUtxB/SkJ41aZ2iNwPS8Fl0sRQU98="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl-1.6.11.tgz_1517827380488_0.7793226831126958"},"directories":{}},"1.7.0-dev.20180212":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180212","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan Grade](https://deepscan.io/api/projects/1799/branches/7793/badge/grade.svg)](https://deepscan.io/dashboard/#view=project&pid=1799&bid=7793)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\n  - **Related Projects**\n    - [Simple XML](https://github.com/samchon/sxml)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\n","readmeFilename":"README.md","gitHead":"a03dce9fe2a3025e0a79bee1606f693def83e8c4","_id":"tstl@1.7.0-dev.20180212","_shasum":"9242eb0d2846a6e04cb4234ef4acc6f29bdfa35b","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"9242eb0d2846a6e04cb4234ef4acc6f29bdfa35b","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180212.tgz","fileCount":154,"unpackedSize":1041779,"integrity":"sha512-oaUKRvpTkYqSlwCgvmGhlSK8aFtidHIUc1tc3ypsyjxxTsqMuuLPuJK9C5JO9W8l/OBNlAJzihdA1jVHJR/hJg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDf9XIVkrCqoF/exgc+ElWH4BKFPzG0BZJveBkHvV0U7gIhAIWOHeVVhzF2dJIsRTISX1lQ0HrYg04EirUSQ1wYFtMH"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.0-dev.20180212_1518423731756_0.05310455083424581"},"_hasShrinkwrap":false},"1.7.0-dev.20180218":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180218","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"5fcb89f94993ac453ab5ff9f07ad638da6196dac","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan Grade](https://deepscan.io/api/projects/1799/branches/7793/badge/grade.svg)](https://deepscan.io/dashboard/#view=project&pid=1799&bid=7793)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\r\n  - **Related Projects**\r\n    - [Simple XML](https://github.com/samchon/sxml)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\r\n","readmeFilename":"README.md","_id":"tstl@1.7.0-dev.20180218","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-jLScDamp/btzIRnQrBtDFuELYbsrTVfRBPIkIPpM1SToM6/Lh4Oxt3X/avkOLkoDF9T59p328gVCVwh2l7/o9w==","shasum":"558bb2669a2dc9a7ca696a4399baaec9ccaae37c","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180218.tgz","fileCount":10,"unpackedSize":647038,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAGYnzLj8BvSagdfCk2TepgE+34Br+66AQVIuvsF16reAiEAwJayp/J4zc2MVI2VKdlqiXikhdwc0weWhwszDzoK0YY="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.0-dev.20180218_1518948317554_0.8217969227603343"},"_hasShrinkwrap":false},"1.7.0-dev.20180219":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180219","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan Grade](https://deepscan.io/api/projects/1799/branches/7793/badge/grade.svg)](https://deepscan.io/dashboard/#view=project&pid=1799&bid=7793)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\r\n  - **Related Projects**\r\n    - [Simple XML](https://github.com/samchon/sxml)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\r\n","readmeFilename":"README.md","gitHead":"62c36f81a466a521936f22632c22f8588da6e655","_id":"tstl@1.7.0-dev.20180219","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-sTMuRBx11vZUKdMZuij05LsDRoFGRzbNcl9oA3tNIZNT/nAvF+KaAoPUPj6ff45yEAVTtEOzw/dJ0sSpOob2cQ==","shasum":"4fd11d2afb5f2ec6510ce0f5bec8925b28865ce0","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180219.tgz","fileCount":10,"unpackedSize":651476,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAe6ENTABt7LNIGCTLFoh5VCuIjsQ184pCrJFfc/0LDkAiAxw9DVcgA4c59wKvFoImMQmZSrQaqJtz2uQvGv9aVkHw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.0-dev.20180219_1518968469239_0.5848187624942542"},"_hasShrinkwrap":false},"1.7.0-dev.20180220":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180220","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan Grade](https://deepscan.io/api/projects/1799/branches/7793/badge/grade.svg)](https://deepscan.io/dashboard/#view=project&pid=1799&bid=7793)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\r\n  - **Related Projects**\r\n    - [Simple XML](https://github.com/samchon/sxml)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\r\n","readmeFilename":"README.md","gitHead":"62c36f81a466a521936f22632c22f8588da6e655","_id":"tstl@1.7.0-dev.20180220","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-+UHutBXr/9nmLF5vobkRNh0KJmIhM5XSBXwjhbx2+vjUoYiES9836zxmTMM1hCEM145bF8uTM0DKtBdN84rYIQ==","shasum":"f7a69680f47a249cf689af6ca6d2ffc08f0ccced","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180220.tgz","fileCount":10,"unpackedSize":655269,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBZGIn0v/EB5Zwpo8eOXyE/XNCD7O7DCWHdfJqtIwOJAIhAMDG4K/w9SJVY7Og4ZMlj+1pgeLVp8WPBNIIElmFM0mq"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.0-dev.20180220_1519053679585_0.09278149533859281"},"_hasShrinkwrap":false},"1.7.0-dev.20180221":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180221","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"081bf657885854cde8d4a8e549dec437c145d5e5","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan Grade](https://deepscan.io/api/projects/1799/branches/7793/badge/grade.svg)](https://deepscan.io/dashboard/#view=project&pid=1799&bid=7793)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\r\n  - **Related Projects**\r\n    - [Simple XML](https://github.com/samchon/sxml)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\r\n","readmeFilename":"README.md","_id":"tstl@1.7.0-dev.20180221","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-OqrEwRaxDt2nu4C/wJBI1BZsaOMbm70veeooIumiJ9f6fKsRNqJBfjiaH/O1Vqz99gKzyDqt98EmI5X2LdGe9g==","shasum":"2c1b15a0251fc8e252ad5bb997d24f6b668a61f6","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180221.tgz","fileCount":10,"unpackedSize":655609,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFlEOzEzwf6HMSE1u0FS5H9YYBhxKHKApThwFkfhi7B/AiEAr9pamXKnbyufaMMbjLlNbFUHMAhmVpMDpX/G9dnOTs8="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.0-dev.20180221_1519140025523_0.6882033975244675"},"_hasShrinkwrap":false},"1.7.0-dev.20180222":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180222","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"gitHead":"9b56ce2d3f3150710da169c2f4899d1a9a5ef63a","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan Grade](https://deepscan.io/api/projects/1799/branches/7793/badge/grade.svg)](https://deepscan.io/dashboard/#view=project&pid=1799&bid=7793)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\r\n  - **Related Projects**\r\n    - [Simple XML](https://github.com/samchon/sxml)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\r\n","readmeFilename":"README.md","_id":"tstl@1.7.0-dev.20180222","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-/SiSEw9RTuGKqn+qMwOYOUvxFFjv0/+USaGqY9Qq6QHV54zWjaappnyEZAqEwcefDpm1gY2nMAFQvJLeR++oVA==","shasum":"16847d495b13057c730c27ec4f1a83c3da85ff46","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180222.tgz","fileCount":10,"unpackedSize":656452,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYxa8vM1G3sBlZhRJhOrpJaAXdgQ6I3RXG9FTfvKRK4gIgZtbjvLeeoUNNGdr3UrXM2/Za5vQahljTeRdFBGis99k="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.0-dev.20180222_1519226101312_0.38190624526962935"},"_hasShrinkwrap":false},"1.7.0-dev.20180223":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180223","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.8"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["stl","standard template library","typescript","standard","template","library","container","algorithm","iterator","functional","utility","vector","deque","list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","Pair","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","thread","sleep","TimedMutex","SharedMutex","SharedTimedMutex","timed_mutex","shared_mutex","shared_timed_mutex"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan Grade](https://deepscan.io/api/projects/1799/branches/7793/badge/grade.svg)](https://deepscan.io/dashboard/#view=project&pid=1799&bid=7793)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\n  - **Related Projects**\n    - [Simple XML](https://github.com/samchon/sxml)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\n","readmeFilename":"README.md","gitHead":"0f94f441500abe2feddb64e8d7bdd9cb1edcf6ae","_id":"tstl@1.7.0-dev.20180223","_shasum":"23bb79fafdb9d753d626bdd07bfc1cef859dcc1d","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"23bb79fafdb9d753d626bdd07bfc1cef859dcc1d","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180223.tgz","fileCount":167,"unpackedSize":1034971,"integrity":"sha512-XgkhAdwWGsW0c8aGHSu286S+o14slhyLexW8xDgW0fwOjXW+Q/Fi9X/JPNdWfMLKMhGmaea1huc6j8VJjnbblA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE48BvZ38F7C6ZskxrskXSJhgpnCUATXoy2x5J3iOLsPAiAcCsamGU4yTWvbKe1JXehmO9OJwFDydJnN9ZGSZA1dFQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.0-dev.20180223_1519373765880_0.11752145792279944"},"_hasShrinkwrap":false},"1.7.0-dev.20180224":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180224","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan Grade](https://deepscan.io/api/projects/1799/branches/7793/badge/grade.svg)](https://deepscan.io/dashboard/#view=project&pid=1799&bid=7793)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\r\n  - **Related Projects**\r\n    - [Simple XML](https://github.com/samchon/sxml)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\r\n","readmeFilename":"README.md","gitHead":"dea7c13da7c6d6add8362fcb2fd7d17ea2657c16","_id":"tstl@1.7.0-dev.20180224","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-Q/YUJQEkqx+xd4akX/chx0JwtxWDlE7Q6Sk+ptnJhOfbcbRdBeRhCrPAqE3Ign+OQOnfDc1qFh02LVbNJBRsyA==","shasum":"19adde0c25cbc69af3c6676c3b4e2c258a7f4f16","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180224.tgz","fileCount":10,"unpackedSize":635393,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEbrYNTCKssis+bsHVrE4T/G55svf9zbzbIyDntxUmq7AiEAmiZ8qDUUYIVZLCiLnovKlWAwbQpDcH0e6SuHvMl+fE8="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.0-dev.20180224_1519398511608_0.0806959954084121"},"_hasShrinkwrap":false},"1.7.0-dev.20180224-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180224-2","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan Grade](https://deepscan.io/api/projects/1799/branches/7793/badge/grade.svg)](https://deepscan.io/dashboard/#view=project&pid=1799&bid=7793)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\r\n  - **Related Projects**\r\n    - [Simple XML](https://github.com/samchon/sxml)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\r\n","readmeFilename":"README.md","gitHead":"97250579fea0bfd46f9dca32f1bfb2615db127a2","_id":"tstl@1.7.0-dev.20180224-2","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-JJq2QR+4BrQokQDYB3QwxrkRhucZKZf62BcRw7aepsyKTMivTX8SFxtHPYKKq2lFME56rnXte9j/aWD0yHm9lA==","shasum":"59f38baf1b7da4d4ec6ef8b4c9905fd45a0ffc94","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180224-2.tgz","fileCount":10,"unpackedSize":635967,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGkkJOBILCsHpXEyyiBhc2/1sBJ8upKiMS9/MQncWo6kAiAy5WDk3PmtC1e8It7DTnuxhrL5GVlE2r6Dvg0qABiz0g=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.0-dev.20180224-2_1519401523442_0.9807113083586754"},"_hasShrinkwrap":false},"1.7.0-dev.20180225":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180225","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"4e194eb13a0ce72233e2dfd826ca4de1d7992c83","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\r\n  - **Related Projects**\r\n    - [Simple XML](https://github.com/samchon/sxml)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\r\n","readmeFilename":"README.md","_id":"tstl@1.7.0-dev.20180225","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-aceoM6zCFkubhNQE+Q8skTDEC+RJuna9otGCfCajp37J/N2hIZNAj2fiON4iKjRc8QZUwjtMPzFF9EYbtsARUw==","shasum":"cd47a0f025ce4a265cc5ce2dd3a8f15ecf246973","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180225.tgz","fileCount":10,"unpackedSize":642054,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+UL9TT9AwZcVySJtjusiwmL+MW/Dx5RBAwqvnmjdG2QIgP+KXVXg362jdudUJHG7W+MipvAcD85/JT0jlzUVyv0E="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.0-dev.20180225_1519483915231_0.35821810454287095"},"_hasShrinkwrap":false},"1.7.0-dev.20180265":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180265","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"0ca4b5d450427b68f6e3523e549e85635f0ff8db","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\r\n  - **Related Projects**\r\n    - [Simple XML](https://github.com/samchon/sxml)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\r\n","readmeFilename":"README.md","_id":"tstl@1.7.0-dev.20180265","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-wcffPTJNmj5YUCBNiB3eEZ58SdtsGHmW5Eg70ryaSpT5BxxSHnHN7l23MJqqZS0RspTdB9WaTRl9yZd7eqqjoA==","shasum":"48c858eb5420a911873b94e07f95c41070f7145f","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180265.tgz","fileCount":10,"unpackedSize":631586,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAXg/CnQx23AF2J5Y3rvVrL3pJ2i5rtoUHV0Q3RlZ/PaAiEAsxFF/qIo81VoWvgtQBmeCR38V/YRlUPJ5dy+eb/AYDc="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.0-dev.20180265_1519572791228_0.5558796770224663"},"_hasShrinkwrap":false},"1.7.0-dev.20180227":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180227","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"2dfdc32088dc5c7b96f45f1670438d7a6270a80b","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\r\n  - **Related Projects**\r\n    - [Simple XML](https://github.com/samchon/sxml)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\r\n","readmeFilename":"README.md","_id":"tstl@1.7.0-dev.20180227","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-I9k9JOFvHgPf9ErKfoCK5D9+aGPxynrGSGHrrTTFLohlUhRmNqLLs+iuFNJuUycFlsMCF7C6jzVznlb8ODAMSw==","shasum":"fb6910ea69ae581fa84056dfdfeb8a9542809299","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180227.tgz","fileCount":10,"unpackedSize":632379,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRvORpNKpoNGaP1HEsMf2VcZeqbdd553U7rPCx2RXa6QIgMa43IsOyhhonZGFVAfomuQ9owcmcahnTK+4t0Sc29VY="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.0-dev.20180227_1519655899619_0.723904551189215"},"_hasShrinkwrap":false},"1.7.0-dev.20180228":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180228","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"380f1438e33e69732773ea3de7f61e33e8752897","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\r\n  - **Related Projects**\r\n    - [Simple XML](https://github.com/samchon/sxml)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\r\n","readmeFilename":"README.md","_id":"tstl@1.7.0-dev.20180228","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-fYJ7SWZLWwzJFMlfnpBuJ6ocSlsFNn04gF6vw1zIWteYSJubRi7VocE10E2umfqkf4DvyUseVoci74vISAgD8A==","shasum":"fee91e2e5cef416acffd3e965697d63a1169c3b0","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180228.tgz","fileCount":10,"unpackedSize":634658,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICAiGzeOCasXW1exacZZwFxJQB0XPC1pokaLWUiurLM4AiEAndLauWn3VmpB0ajE7QKLERA+sPFHghXQ/fcog78niL4="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.0-dev.20180228_1519747297131_0.2995189933254432"},"_hasShrinkwrap":false},"1.7.0-dev.20180301":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180301","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"d9d9cb47396a097c3f5726c80392a2050f0c98ce","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\r\n  - **Related Projects**\r\n    - [Simple XML](https://github.com/samchon/sxml)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\r\n","readmeFilename":"README.md","_id":"tstl@1.7.0-dev.20180301","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-azJNPwZgYTAEpAYRlew8LO8G+tjGj29c0jGLvM/skqJKy7BMHgZWkYaN+zZ3GoxgJfsYO3i8asxXbwmNV3C7GA==","shasum":"25b4089a69c9c5f146b34cab9fc28ece9ca205fd","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180301.tgz","fileCount":10,"unpackedSize":634942,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAwHAXHcEzHTFG0CLLfnKI3BFu37QjfeJkc/sS3KgfEQIhAMvzhSePMdbNauwN6mufe5dMREB0FjQqxxfq6CGuquWT"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.0-dev.20180301_1519840455920_0.1301529721095256"},"_hasShrinkwrap":false},"1.7.0-dev.20180302":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0-dev.20180302","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\r\n  - **Related Projects**\r\n    - [Simple XML](https://github.com/samchon/sxml)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\r\n","readmeFilename":"README.md","gitHead":"75c1b40365b9071b7ab3167724994a83b7247a5c","_id":"tstl@1.7.0-dev.20180302","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-xPLNFp/CkT6UXtQNop8nWpkACp7ASxJj2eLpnbRUexgKOX8qDiIiZQ/vZdMOAeipZFIa5AXtYsJbADJGBhxssA==","shasum":"09614420f8a478a11ef363c8f85cd8c23c1228df","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0-dev.20180302.tgz","fileCount":10,"unpackedSize":635007,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDVAaW1dJ7G1PhpgestJ0S6ZUbLt3MqS5WCOhw+/5Th7AiEA7GaGLQ2h0Qp5sc0VqiOgXp/TINpI8EgSm+mHOrZUNXY="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.0-dev.20180302_1519845158845_0.3424816839541267"},"_hasShrinkwrap":false},"1.7.0":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.0","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"514eb8f8b20b74a806781c1ec79e405401f3e4b5","_id":"tstl@1.7.0","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-q97TQXILhXCcBaFirTKJQofUOOGioUv5M3kii27JN5oT8EdBscjWAr6eaJNz3xuejA7ucDTQjTSBj0HO1q4dMg==","shasum":"22afa941ca032035bdf8f14290aefe87d23fe9aa","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.0.tgz","fileCount":10,"unpackedSize":635193,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDTaxfko78QKZz6/V0ZS8+QECS9dsWXy/wUN1nPiq5ibAiA0QuY9V9zTg1wdcRUBRpPR2vqWBNoiOSoVVtPS0Fa89A=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.0_1519913775446_0.5637680218000543"},"_hasShrinkwrap":false},"1.7.1-dev.20180305":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.1-dev.20180305","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\n  - **Related Projects**\n    - [Simple XML](https://github.com/samchon/sxml)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\n","readmeFilename":"README.md","gitHead":"514eb8f8b20b74a806781c1ec79e405401f3e4b5","_id":"tstl@1.7.1-dev.20180305","_shasum":"cdf0e08929f4693713717c10b1e26339c5defcc4","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"cdf0e08929f4693713717c10b1e26339c5defcc4","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.1-dev.20180305.tgz","fileCount":10,"unpackedSize":623613,"integrity":"sha512-ezWD1CZZW6zt8RiotSCfVOwZc5Oh+XFz42GbGTG50atipfSUaGt1fdH9jFTCiz/aATrnFEiY5Ux9/c26/84Big==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAlv4EA5JUTjJhZF2NWb/X2pIIkovwhh02M4hYVqnqt0AiBdc1C6sOhMraP+pS2l7h3C6LS1pxBD82ufrR+BeHEQgQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.1-dev.20180305_1520218500320_0.4491418544515806"},"_hasShrinkwrap":false},"1.7.1":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.1","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"23c3cf1c17f800f71cc90889cbe6ebca7bdf1ed9","_id":"tstl@1.7.1","_shasum":"34c53b7838f0e012b0b1b2325e8e92a3e0211d27","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"34c53b7838f0e012b0b1b2325e8e92a3e0211d27","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.1.tgz","fileCount":10,"unpackedSize":623541,"integrity":"sha512-ZS6QXIgGTGXOc0hfD6srDIyP78L0ACfgL7/bWNzLo5InxtRH4kPQZw2pbYMWEcMf9QjN+TkBDGjm6ge+R2kb+A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDK5MADMvUplURY1naJM7+rTMwHtH4irU7PsXQMn8DT7AiB7VdCrkwgHG8whBzwScAygBD8l/ropZ7e540XFakj/Zw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.1_1520221988220_0.5301104335627937"},"_hasShrinkwrap":false},"1.7.1-dev.20180306":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.1-dev.20180306","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out ../api","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\n  - **Related Projects**\n    - [Simple XML](https://github.com/samchon/sxml)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\n","readmeFilename":"README.md","gitHead":"52231267cc689e80e5fa591058213501707a5b9a","_id":"tstl@1.7.1-dev.20180306","_shasum":"8aaed2f4b639f45650e0b925358d2db0f9ad5dbf","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"8aaed2f4b639f45650e0b925358d2db0f9ad5dbf","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.1-dev.20180306.tgz","fileCount":10,"unpackedSize":623989,"integrity":"sha512-suHzL9sPBrUbZPYsy4+60g8eFDNqiXBC4KRZWp1VNYIUF17ASYdKKO8+Ruj6zhHb/Mn4nWj34p9ksPAULjSU0A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdkCDvKJMrqHrd2ZJAwp/mg/93Ge0mZkGmseuMyLP7wgIhAPVS0RZbE9Hx3gd3V56qDeFSTV0Tqt6KlPUyrvJbNFdk"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.1-dev.20180306_1520325058531_0.6001943851847005"},"_hasShrinkwrap":false},"1.7.2-dev.20180307":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.2-dev.20180307","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out ../api","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\n  - **Related Projects**\n    - [Simple XML](https://github.com/samchon/sxml)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\n","readmeFilename":"README.md","gitHead":"c18ec9b74e8c30fa3dc530e259ca61c6df9ecccd","_id":"tstl@1.7.2-dev.20180307","_shasum":"a440c7ebd7a8afd7ff4599d943558927576222f4","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"a440c7ebd7a8afd7ff4599d943558927576222f4","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.2-dev.20180307.tgz","fileCount":10,"unpackedSize":628197,"integrity":"sha512-0c+vYWBfJ2nWj+VPbjwtxwyfQPKwA3VMEx9Kq21VUQEH6ShIiMGDTUL7Rt9ymvth2yhHARfCn6YSQUJMhCHXZw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFtVrruOg9AJP0uu2UKVDbuxO9JQwPbiHi1nYw9N8G56AiEAqmDYzwMCaIDdarHi4G4yUWdXCQ9vhC/d/j4RXVvzEdU="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.2-dev.20180307_1520387196456_0.5115678880447283"},"_hasShrinkwrap":false},"1.7.2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.2","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out ../api","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"1917f2e9adc9ef72e1d78dca10eab719745eaa8e","_id":"tstl@1.7.2","_shasum":"8c687e13991cdce8610dba4bbb10501e8de8af29","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"8c687e13991cdce8610dba4bbb10501e8de8af29","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.2.tgz","fileCount":10,"unpackedSize":628197,"integrity":"sha512-VHIpqLbA5E6jYLBCrOm5xbxYx0RBEwCTbg0Su7zcP1eWGwKVkvK8N/ZYkb28g+FS9q1fSk1V6gMZT6Fph8BYvA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIExGFUNOZhxyF0HRLaT7DBptoYalUe6MwNUaQ47my/EfAiBCzZFOBxHin2f2JqVZdaoYxZF7Hj+VJvkXZbTuftFVSg=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.2_1520390591810_0.6229512616431541"},"_hasShrinkwrap":false},"1.7.3":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.3","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out ../api","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"ed72757891d35332ae481400ab83a840e21cb584","_id":"tstl@1.7.3","_shasum":"f0a56b4178e690e75b85e1162ed3419ad1d1d288","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"f0a56b4178e690e75b85e1162ed3419ad1d1d288","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.3.tgz","fileCount":10,"unpackedSize":628167,"integrity":"sha512-0QlaXvFkuDoTu0k0Pj+0hfn+AVjrZcEiXEmKs3IE8s1CzKew8ZFXp/aC7C+5mIVXakobTSIoI0IBS5m6oQbbWA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAndY9In3B2n3Pll+GgwU+r7vTqfkIWO+D19pTqBZJ04AiAB+GjdX9Gyg9uxuwW/u0mAYT2SPxTX/PdfBLG1TOSnLw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.3_1520395269678_0.34925482198517765"},"_hasShrinkwrap":false},"1.7.4-dev.20180308":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.4-dev.20180308","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out ../api","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\n  - **Related Projects**\n    - [Simple XML](https://github.com/samchon/sxml)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\n","readmeFilename":"README.md","gitHead":"85abc73d0124f11af911ec3fbb12a14c58ecebfa","_id":"tstl@1.7.4-dev.20180308","_shasum":"c8c3c391a1e985a45152282675b1f1c22fc98547","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"c8c3c391a1e985a45152282675b1f1c22fc98547","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.4-dev.20180308.tgz","fileCount":11,"unpackedSize":627404,"integrity":"sha512-AXS9xGeqYBNi/jdSWiniDhYh5X+IQpQh2pAMvLSZ4obWA0y1LSeARC0RJc6tBcBhv6kaTnftKVkq66OXk0WOXg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIErxo2jdpGy57hW0xz+hCjWEgmpEuO0obUgILcBDdJsZAiANK6IOD+9ufm5/qvDWB5IpFlsuLlgjxPpI9nICdIVbNQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.4-dev.20180308_1520500019138_0.4339708566974614"},"_hasShrinkwrap":false},"1.7.4-dev.20180309":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.4-dev.20180309","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out ../api","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Class Diagram](http://samchon.github.io/tstl/design/class_diagram.pdf)\n  - **Related Projects**\n    - [Simple XML](https://github.com/samchon/sxml)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n    - [3D-Bin-Packing](https://github.com/betterwaysystems/packer)\n","readmeFilename":"README.md","gitHead":"7859dbe0faf33a782cf83f1a099374390235c51a","_id":"tstl@1.7.4-dev.20180309","_shasum":"4eb5ba5bedcf4b65967a66bdbce06a07af2d6c9c","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"4eb5ba5bedcf4b65967a66bdbce06a07af2d6c9c","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.4-dev.20180309.tgz","fileCount":11,"unpackedSize":627404,"integrity":"sha512-FlS87VG7PLqmlDb+hMHXN/4rnE8Feh7LgdvNtBb4RaKDTrQrQkUgAzBPitNle+4XX8klGZu0axiNV1Ll8LGcnQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCifM3gv8rQ4xxgaHLq0ha8udpgtXhL6KbfVL3gzuZEWwIhALasUd0HiCFBub94FHLEdN2fsk/kx4e2exyH/HsE9Isj"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.4-dev.20180309_1520564812413_0.23358840551098292"},"_hasShrinkwrap":false},"1.7.4-dev.20180309-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.4-dev.20180309-2","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out ../api","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n> ### ECON\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECON** is an extension module of **TSTL**, providing special containers dispatching events. The special containers are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special containers. Types of the event dispatched by the special containers are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECON](https://github.com/samchon/econ)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECON](https://github.com/samchon/econ)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"7859dbe0faf33a782cf83f1a099374390235c51a","_id":"tstl@1.7.4-dev.20180309-2","_shasum":"8d762589083a55b6934edf38155568e52101467a","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"8d762589083a55b6934edf38155568e52101467a","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.4-dev.20180309-2.tgz","fileCount":11,"unpackedSize":628140,"integrity":"sha512-lVdKItd2LyFDFQ8rciRkn4yZe8n7CO9s1J37dxtlt/XF1BFAHpgGhfKSR/Go+Srs6xiuENZAoeQefC80wCA/8w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICNjqehVmfAOQ3Upm2gRkKJBsOcIkpUVtFJMpZriU/AoAiEAveSp2RW02vtsweb7bqFSTwpL9NEEsE4kXr0YaLpXJmk="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.4-dev.20180309-2_1520567485100_0.0618347889197548"},"_hasShrinkwrap":false},"1.7.4":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.4","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out ../api","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"235650954e8e88bf800140fc3bb621f715593f9c","_id":"tstl@1.7.4","_shasum":"1cee6e9650d34c447c54e23e6e47084cc6f7c888","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"1cee6e9650d34c447c54e23e6e47084cc6f7c888","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.4.tgz","fileCount":11,"unpackedSize":628125,"integrity":"sha512-A0nA2yBY1uSyVwdmP7S4YeKHLFRQYB6wNPYiy9o6X0dQItrXcpZKDhDXxrSoBngyOVM5nnKgbFGTkiBRPdxzxw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHeATKT2OtpqNiU5ZyNne5aYdgQN0nq48KtcmQldUb0JAiEAl969niVKmh4smkjo0OmOnv4mCarJGQcGsadd+5oJthE="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.4_1520569144602_0.26374255343481234"},"_hasShrinkwrap":false},"1.7.5":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.5","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out ../api","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"ae531dfd6c0f9096ae8ef53e97f74d88a1341cb6","_id":"tstl@1.7.5","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-yNTmVndVjpupRQbJGIlgWjHt61r42v+1echeGWh2VoLboeFNSZcby2gO6YXv2WHGdlHD37HBHwqloEAy6V22Bw==","shasum":"84d71d55abebf9aebcab492469ffa397598c6f28","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.5.tgz","fileCount":10,"unpackedSize":638172,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICu/I6ItTuAOc+w7WTnsy8sAH606/2OwvAwOH/gbjhHTAiEAkB1VSNuTTbxePAcqVoeqmnNBrcPPUJmb4wyxXtuO3zk="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.5_1520601907591_0.7451953489567662"},"_hasShrinkwrap":false},"1.7.6":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.6","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out ../api","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"4cff7544e7ef51a626a0a4828e6e0f7cb8b48293","_id":"tstl@1.7.6","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-hMtdfsC/OyMbywvFuLAIohJuziuom88QeAdxqYW/Z7krmybFsZMn0NlAPp4CXs9koe4y0CZEtcWWFRJJRAYa/Q==","shasum":"81505edd1107f79159563ab8ac74121e3011c9c2","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.6.tgz","fileCount":10,"unpackedSize":641470,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCj9aBsAl/fJe60L0NkH0Xcp4KnRgnI25ZSXlKiqkzYUwIhAP7VmsotF6wSdDDmcslol+5xTnr2ieXEoVhy5dOVJzDY"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.6_1520618672527_0.19672047147660376"},"_hasShrinkwrap":false},"1.7.7-dev.20180310":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.7-dev.20180310","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out ../api","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"4cff7544e7ef51a626a0a4828e6e0f7cb8b48293","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECON\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECON** is an extension module of **TSTL**, providing special containers dispatching events. The special containers are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special containers. \r\n> \r\n> Types of the event dispatched by the special containers are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECON](https://github.com/samchon/econ)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECON](https://github.com/samchon/econ)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","_id":"tstl@1.7.7-dev.20180310","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-MoulC4C09l7a55fq9ztVCQaqLyJQg4fCjkCQnXCs+lnPPHRkm9cLQgkKQelu9OGYBuIu392jtX97yQ5zMtd71Q==","shasum":"a52a23f9093bc4027a15aa18c7d0220bf0c8d32f","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.7-dev.20180310.tgz","fileCount":10,"unpackedSize":641524,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFgMUrDbUGCY0r/87wvl/2WG8RlNbGFkorkSMywo3ZUAIgKaWt6/eiDDyBfE6bc8Z/YCNIIJ58V0hsz2GKf2NEL5M="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.7-dev.20180310_1520657150748_0.63728493650192"},"_hasShrinkwrap":false},"1.7.7":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.7","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out ../api","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"6cab27246e5df5fa01b006be923534e1400771a0","_id":"tstl@1.7.7","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-KIyosGcNctXR1+xFJNAsAhV22QlUpFr8+XWDtdWvPId+m6MHrYg9KyEt7QziYbrn58CHuw/SaoYgG+ndjRn6Ag==","shasum":"1df2414f6117d1288a2f18c0643b0d4e2e1aed32","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.7.tgz","fileCount":10,"unpackedSize":641511,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDCHv1eq5n2WwE0UPkbhVsjbV6C0K9h0wuBJNKmhNu8PQIhANpLvWhBI/0vdKEvt1C/uPOGmEVh3HCvc7qEvyrQEnWH"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.7_1520663295740_0.32244246828947776"},"_hasShrinkwrap":false},"1.8.0-dev.20180311":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180311","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"tsc & npm run test","test":"node lib/tests/main"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"devDependencies":{"@types/node":"^9.4.7"},"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECON\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECON** is an extension module of **TSTL**, providing special containers dispatching events. The special containers are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special containers. \r\n> \r\n> Types of the event dispatched by the special containers are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECON](https://github.com/samchon/econ)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECON](https://github.com/samchon/econ)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","gitHead":"78fa72bea7186de8a17a65eb83eff1962776f184","_id":"tstl@1.8.0-dev.20180311","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-3FhNbW0h68G7oOWpDbA0MGLYHFaSniwDFH1sJa32yUoLRs7dV6UvIMwaLS7TF4a9PFEd6dSXrjwWS4O0BGVUfA==","shasum":"9d6f9b742cd66a98e8feae1a7cfad466b457634c","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180311.tgz","fileCount":307,"unpackedSize":642864,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICCi5IBtsLZwuwr4MmOcCjGw+EkPETUkrjF1RIKy3Ad0AiEAlSwGtNOyK86v41tHVQMf9iVRxSZhJWpw8u2z5hK7Il0="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180311_1520713232925_0.5634193905519407"},"_hasShrinkwrap":false},"1.7.8":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.8","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out ../api","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"6cab27246e5df5fa01b006be923534e1400771a0","_id":"tstl@1.7.8","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-8TGVD/QfSUg6iZGqfcJN/7QRUB5/VUUgKUtd7/EdiC62uMahpjWH92TRWgpeFZaMk4qM6KbeRJC8nO3KX5LUCQ==","shasum":"0544fb93ecb7c22b7b6080a3d82d8dbb60e17c79","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.8.tgz","fileCount":10,"unpackedSize":641685,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH9rVbSGvvhT1PWw8x0of7fhgDS6mj8jmuO/hJlvRbSGAiEAhxvnNUDcfVF68BMCtNwMqjFNoynMxpQkeVOXZiQ7X+A="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.8_1520714037466_0.6091017304699766"},"_hasShrinkwrap":false},"1.8.0-dev.20180311-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180311-2","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc & npm run test","test":"node tests/main","clean":"git clean -Xdf && git clean -df"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"devDependencies":{"@types/node":"^9.4.7"},"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECON\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECON** is an extension module of **TSTL**, providing special containers dispatching events. The special containers are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special containers. \r\n> \r\n> Types of the event dispatched by the special containers are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECON](https://github.com/samchon/econ)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECON](https://github.com/samchon/econ)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","gitHead":"78fa72bea7186de8a17a65eb83eff1962776f184","_id":"tstl@1.8.0-dev.20180311-2","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-N1iDe7kYL6CshNJHjZZzrPiXhdcdk873Taa0Zu1Qu3wHxvNU9hQQccUz28gx5jB2fnSNjBm1jHH4QU08hbVmrg==","shasum":"92d2815c76644a117d574764bd6a3c8b95f6e11d","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180311-2.tgz","fileCount":307,"unpackedSize":642996,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMrkqj31u9Lpg00jya1EkscjJwjYy0iTz5eiC2Fexu0wIhALH7BL3uyoOCYF8YHe9AfPrdGa6ayInyuWi+9Li5NBJk"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180311-2_1520719275406_0.9564678617527758"},"_hasShrinkwrap":false},"1.8.0-dev.20180311-3":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180311-3","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc & npm run test","test":"node tests/main","clean":"git clean -Xdf && git clean -df"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"devDependencies":{"@types/node":"^9.4.7"},"gitHead":"62450b499f32900cbbbfe84e4acaeb7dca176af8","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECON\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECON** is an extension module of **TSTL**, providing special containers dispatching events. The special containers are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special containers. \r\n> \r\n> Types of the event dispatched by the special containers are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECON](https://github.com/samchon/econ)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECON](https://github.com/samchon/econ)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","_id":"tstl@1.8.0-dev.20180311-3","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-o90/nmmPm/HAUpdOWUW5lOtHauczzM8BxtLgozNeq6ZGlqqpZp41JHJkN98tj5qLhgYgxdG/0EjGsqLF5uAfMA==","shasum":"c5ad7da04cc75eb035b0348f9c329e3cade02723","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180311-3.tgz","fileCount":309,"unpackedSize":644241,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFhOmN/IEB5VosFmNkvrReQ2i2sK+HfR9RRn62/hZuLmAiBpQt8K1aF12pwGnMq+7TNj3s1UkZA4k2KIUL6twxayLw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180311-3_1520747616913_0.3400185187115603"},"_hasShrinkwrap":false},"1.7.9":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.9","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"d1f99870ca5824600041d374a40fe439a95eda49","_id":"tstl@1.7.9","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-CTggcATEH9YRYx+A2fzUyaoRlu3bauVklcYRZv2PXDQah6PzqgaGW7gwyrfgLCDFq/BqOFLHKWvkI/Uyqmh7/A==","shasum":"26de6bf827ae6a81837cad75d32ec068de6ea810","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.9.tgz","fileCount":9,"unpackedSize":516637,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGEdXZs7Go7JrS/faZSgVWq5hTXRCkHzPkzqVLCCAjc4AiAhZ/QX0AhFzdAEmIby21LOcJStp9nmuuMN3nfMA5BoAQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.9_1520760676625_0.08396653639397966"},"_hasShrinkwrap":false},"1.7.10-dev.20180315":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.10-dev.20180315","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECON](https://github.com/samchon/econ)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"a9045d8e017772fe4fdc6a2b042ea289455ef660","_id":"tstl@1.7.10-dev.20180315","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-Mcbe43L7WG56nvqamIIZ1O2XLyu9ums9PINY6ii/mSs3l0uQTam8GcV4stoxyNmPFclqmSs42D6s6rmhz625AQ==","shasum":"c052bf62848131484781ff27f9138e0c1811d602","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.10-dev.20180315.tgz","fileCount":9,"unpackedSize":492728,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG2yK80XLKDxiALkIYyrma8INWCYvqh8Vz8GiwKlG9DLAiA8LdZD1yzC3hN4x+cmGiRqVLWp4AePzq64cQD4n3Il+w=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.10-dev.20180315_1521077034933_0.6112994058434453"},"_hasShrinkwrap":false},"1.7.10-dev.20180315-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.10-dev.20180315-2","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECON](https://github.com/samchon/econ)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"a9045d8e017772fe4fdc6a2b042ea289455ef660","_id":"tstl@1.7.10-dev.20180315-2","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-XdCD5kF4ahKeL+lS0nB3Zq0uryZtQkq25kL2Lb4TVW4FdE2OmMsjYltZ3dOizQKpDShkB6rq+Gg10kfWgelHlw==","shasum":"5a527a679753f4024e1728a29feab51ad00075cb","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.10-dev.20180315-2.tgz","fileCount":9,"unpackedSize":492730,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGnLj0lfFJycVtoqS4Xd9mNu5AcK+NNz8K1DmGNZFYhiAiB2aqo5kFqFN/7r1stzNj9r+SVcVHKXCc+WA+rNMmJd1Q=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.10-dev.20180315-2_1521077488558_0.6525706645422988"},"_hasShrinkwrap":false},"1.8.0-dev.20180315-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180315-2","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc & npm run test","test":"node tests/main","clean":"git clean -Xdf && git clean -df"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"devDependencies":{"@types/node":"^9.4.7"},"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECON](https://github.com/samchon/econ)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"b6f7dde37a2fadf1593e1a8f6ffe74a89e084243","_id":"tstl@1.8.0-dev.20180315-2","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-pgZXg9cuWXaohGttReBTLWvUorMusrL17+3kgTrGTUZ+aSv0iLC3PU8XmzgnGSskzarRc9WejaIxbhQFZ1kwow==","shasum":"1fcaa297e7b85868ac7b8121943c14e417c9fc0a","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180315-2.tgz","fileCount":253,"unpackedSize":520545,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEHdpF4Y0/MlSqWP+9+TOi27kQYLVFz58hAUUgnyBdBfAiAFjXFO/2FuVbyVBs9MxSoD5KGcYC4xF0VsZ/hmRR6Ycg=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180315-2_1521082333963_0.17571141654146816"},"_hasShrinkwrap":false},"1.7.10-dev.20180317":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.10-dev.20180317","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"d1c974bb5785c85634855337bdc7a0c07da1f55d","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECON](https://github.com/samchon/econ)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","_id":"tstl@1.7.10-dev.20180317","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-gI9BKzkft9UprDKGvGkun2RluQg1scrRUDeTAD+rYSC1E9Lv+PEqANFqEqdoj+nEDuoY0raMmfSUUjwWXWHbJQ==","shasum":"3ee1f090bf7a66736b158d922eda5a096e0498b9","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.10-dev.20180317.tgz","fileCount":9,"unpackedSize":544700,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCHY3tiX8zklV52TKvEPtgMzjnvM0+FtIQFlj5uNsg6CwIgdlz9dk94OQEK08BDZwPdd9+axWk391sjMZ6YnjyNUA0="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.10-dev.20180317_1521266900011_0.44536556817465645"},"_hasShrinkwrap":false},"1.7.10-dev.20180317-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.10-dev.20180317-2","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECON](https://github.com/samchon/econ)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","gitHead":"d1c974bb5785c85634855337bdc7a0c07da1f55d","_id":"tstl@1.7.10-dev.20180317-2","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-axLsPWdTWNu/zVeo719HkdDq67dsLBVg4HYE930HyD6o/unHMkx/JPYVJQ55VNIqEIbKMmZy5q4Tx4vCHlssrg==","shasum":"bdc7b638cdc2b8675a61cd285be588d20a4acaac","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.10-dev.20180317-2.tgz","fileCount":9,"unpackedSize":558529,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJmgr66hbNlm3PsplAe/AJRxeWOZIBKV3rmld80nB5eQIhAO5ASe0dyZJCDjdCft5TnyhliX0XhymQvtLfTRYPHzSO"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.10-dev.20180317-2_1521281078190_0.08599968166215022"},"_hasShrinkwrap":false},"1.7.10-dev.20180318":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.10-dev.20180318","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECON](https://github.com/samchon/econ)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","gitHead":"3dfb9f9443f95244f44e8f1169bf368d6916af17","_id":"tstl@1.7.10-dev.20180318","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-9EvbbYayg+5cUuRvazkmPp59jAHlVKpJFDoXVg2GRt99bkrlb4S/qAsFME9lnXuCyoyQfQUvsbAttkM7Jj0QVA==","shasum":"4934b04237788664336653a996b38e04a6ca73d0","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.10-dev.20180318.tgz","fileCount":9,"unpackedSize":560383,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHoepZwVUx9A2qU+jKhlZF7jOZDN5Mgz/j17M14W9/TvAiEAv1vKmJxpHgGaU9E/tJ1T5kgmHf4yOPcVGxHcwGnnx4M="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.10-dev.20180318_1521309243874_0.8008841359484744"},"_hasShrinkwrap":false},"1.7.10-dev.20180319":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.10-dev.20180319","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"3dfb9f9443f95244f44e8f1169bf368d6916af17","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECON](https://github.com/samchon/econ)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","_id":"tstl@1.7.10-dev.20180319","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-R8pR0nm6m4u3a6aXKwXTaOPXcIp8V1WADjxwksywxha9lXUx7pjLpHykhHI58PxHzwKtC2PX86yOp4pjOtwXhw==","shasum":"3e8901dbd14fefbf4c91ff689fa7bc08ded85151","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.10-dev.20180319.tgz","fileCount":9,"unpackedSize":568851,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHxSnf+jHauExbzen3FGdz2e1w4/RGQXSMsJexWRYY0jAiAG2O73hVrugoz6rVR9v8lluKeb60xbpHZJwnKgE/kCJw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.10-dev.20180319_1521383148939_0.012132665240914609"},"_hasShrinkwrap":false},"1.7.10-dev.20180320":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.10-dev.20180320","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"899606ec58ee4ccb9a17f8160796fa885e554601","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECON](https://github.com/samchon/econ)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","_id":"tstl@1.7.10-dev.20180320","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-42w5PQmzj9Yt6+nVaZ9e3Um53+y270p7cvwr3tAKT7jDPRyAr6XPy7X9AU8jOb7/TJf2nLZ3SVg4aQObTl8wgQ==","shasum":"9bad19923d50d6e327e22ae676ed3b853ee0d4c0","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.10-dev.20180320.tgz","fileCount":9,"unpackedSize":582051,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCoKOancvGhhSbEnn37aSHjMiwiO8JXXVDRNZszB2dfOwIhAIA/3MWlez5J0gE2fAklxOg1GLH/QFITvGuvGx73B36H"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.10-dev.20180320_1521471125604_0.8988382194373787"},"_hasShrinkwrap":false},"1.7.10-dev.20180321":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.10-dev.20180321","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECON](https://github.com/samchon/econ)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","gitHead":"8a5f6bcf44f45dd3ce70358e1f0ef0db95b15669","_id":"tstl@1.7.10-dev.20180321","_shasum":"a329e0bb5ffb3b6e944519c254b72042370d2727","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"shasum":"a329e0bb5ffb3b6e944519c254b72042370d2727","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.10-dev.20180321.tgz","fileCount":9,"unpackedSize":604526,"integrity":"sha512-Vucm/UgN7+s+eIOIqPHkTzzguihQV7QnlwHBcCof0TXn+qh91dijEPSx1e2p2KadvMmNrEKxTsm/IlfCWUTEcw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEAsHZwlBd9MAj61381Cm1p0t43yUeMC/HxgzIKZunVYAiBmzbLKtfmHsvrv0dC35++/xHHmUqAwAiUybKeVwT8h6A=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.10-dev.20180321_1521562876672_0.27973114491331486"},"_hasShrinkwrap":false},"1.7.10-dev.20180322":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.10-dev.20180322","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECON](https://github.com/samchon/econ)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"68679b4b61b8d06eb05cb719141f2f2bb1c485be","_id":"tstl@1.7.10-dev.20180322","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-dZNZ9JOq9gFuANlY3Uy2qZ2i3MJpiAvUTUh1Q1g9wmr5zZI1PGzuTGQmgm+lF1UAJ9TjDzVp8D2yQzY7jdaAMg==","shasum":"9e5b6e4a6135c0ed65933de3f4023a4e204e0d62","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.10-dev.20180322.tgz","fileCount":9,"unpackedSize":614725,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCimyBn67gufesvbT7p1dJq1AWjuF/QXM3f/hXR+gZAAAIgYKtUSwjKLfu1yVvvknY7+v3Gcm1UKvgKNYKP6QN2i2A="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.10-dev.20180322_1521685233678_0.9918560688762474"},"_hasShrinkwrap":false},"1.7.10":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.10","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"68679b4b61b8d06eb05cb719141f2f2bb1c485be","_id":"tstl@1.7.10","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-qLuVnK/d2KRHvMaT7juHB4Ll8sWtMbiPUb+26wADTknH1MkMAYVUNonsnYGZ+iM99qT4o0GCgNyHNN1hXMrOlQ==","shasum":"4cdc6ab5aade0abeb554784efa1b470a2350bd82","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.10.tgz","fileCount":9,"unpackedSize":614674,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAsjUkhWxI12z5ch3M1m2anwHGBojWWSN4j3W0vQaWQZAiEA6ECHuHhI0XMEJXcDD1QFN7w2zt+PdTohMpo3BS3wcnw="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.10_1521686190918_0.06927554845502981"},"_hasShrinkwrap":false},"1.8.0-dev.20180323":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180323","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"tsc & npm run test","test":"node lib/tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECON](https://github.com/samchon/econ)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"b6f7dde37a2fadf1593e1a8f6ffe74a89e084243","_id":"tstl@1.8.0-dev.20180323","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-/oPEZaM2DwJshZLtTdbtAXyYSrM3aWxxik10xcsO1AW+BSLdhet8W3n4O3tsT6ln8UwLJuBIvHCcCv5RQZCiYA==","shasum":"7f8f162ce8a032d131dbd4b989393b0edc8edd2b","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180323.tgz","fileCount":278,"unpackedSize":687630,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0QDCxPdF6a57CEzn0IYwamSV7VoLJb9oTOoofPsZ0KgIhANAPjkJuESw7qLNyGClN1ePwOt/FPmujPxE0Sh+/DeoJ"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180323_1521788605924_0.6036023056283402"},"_hasShrinkwrap":false},"1.8.0-dev.20180324":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180324","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"tsc & npm run test","test":"node lib/tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"46fdd86336ad5332bfa74b2e6dc5af93f3486ecd","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECON](https://github.com/samchon/econ)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","_id":"tstl@1.8.0-dev.20180324","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-yaJ/kx6IZEQqmvhXLbHmm0MZMnGYQ+KRL+SB4UMUodvP1oIOyRd7/TwjzKkTarKRvvoijF1al9hcA39r9J78Yg==","shasum":"bd7cf89187cc9499473551c30f1cba868147f25a","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180324.tgz","fileCount":6,"unpackedSize":19273,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLbaMwU1dLop/0iAwi8qq8IfotLwIDmhbzvlWZh/n/EQIhAJdKC3EvbtXIOimIoehEHBIJuULx1gmB4ZpnKdU98Xeo"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180324_1521886098677_0.510972023775077"},"_hasShrinkwrap":false},"1.8.0-dev.20180324-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180324-2","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"tsc & npm run test","test":"node lib/tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"08a49e24f34644d34177e9d317c223ec1a6d6e96","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECON](https://github.com/samchon/econ)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","_id":"tstl@1.8.0-dev.20180324-2","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-jpcx+I8sjh8blmzj/yuokGU/4YJiI/I5ghy0FBgqAU3jrbtUj0DIU+/ZZ6U94Q2XOjGIRFt41v6P6hfED2W15A==","shasum":"ff23f72a8d198043c3ae468a2b5f386f3ec083fb","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180324-2.tgz","fileCount":278,"unpackedSize":708793,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBqofzvq6hnOhPydjzJegivdIlDScnFQHlMLafFRI+3bAiBi2XtW2DNkdYs3y0nbsyHwiccjh77igG7F91Nx7R/BWw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180324-2_1521894895261_0.023687085785647044"},"_hasShrinkwrap":false},"1.8.0-dev.20180325":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180325","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"tsc & npm run test","build-api":"typedoc src/index.ts --target es2015 --module commonjs --out","test":"node lib/tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECON](https://github.com/samchon/econ)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","gitHead":"74bec6f1142d35c5f99371e236ac8043aad0915a","_id":"tstl@1.8.0-dev.20180325","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-agp4KTFMnQFzEm/7XT+FUfFKmQnISudZyI9koUm8Celu3IvkuVNXU9FBXosKlCzHAIkqD233ZgVzdiLqog3QEg==","shasum":"e33d72975f65f5ad85235b7c06e76e19240d1467","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180325.tgz","fileCount":278,"unpackedSize":708962,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6ZjLLzTRw0NslHeRcixwBy9Nv9SLDRZ7LD07B+SCLzgIhAPVqQI5zhm4rkA/gg5qtQcz6fdK5WrfeurzuJgryC0xC"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180325_1521986273605_0.2346016335131833"},"_hasShrinkwrap":false},"1.8.0-dev.20180328":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180328","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"tsc & npm run test","build-api":"typedoc src/index.ts --target es2015 --module commonjs --out","test":"node lib/tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECON](https://github.com/samchon/econ)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"35fa91198155001e92ce074e16b002c48f3e6762","_id":"tstl@1.8.0-dev.20180328","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-xwFaEt8YA3OEjJieXTSo+vje3X2FHxUFbzXf/ByDqpQT7RK27Wj9MUvlyCFB0NKWSHgrYMmVWRwp+lFS+4mdzg==","shasum":"8170c8fe6e16b1030d1455d2bc2b4ea51dd2b82b","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180328.tgz","fileCount":278,"unpackedSize":691494,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVtsusVT3umU5eTRV2Zg1f9ujR06iiDgSe+DV1BUXOcAIhAKrCsc3PDXFuaQ7Tz+Ft7QyQNXgQODcVCvXyBPk9j3Zz"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180328_1522203085113_0.13106809557875598"},"_hasShrinkwrap":false},"1.8.0-dev.20180330":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180330","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"tsc & npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECON](https://github.com/samchon/econ)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","gitHead":"35fa91198155001e92ce074e16b002c48f3e6762","_id":"tstl@1.8.0-dev.20180330","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-g6ShQIsLkdJ9yLIl6SZMJBneF8lbSxvMvWdvW9KDs6w1GTe5pNnaAG5/V5RpZyCBtVJ7bjaU/twEFE5mvYdhDA==","shasum":"a2842154db8bbef07aa058debc6e6c8f04205f81","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180330.tgz","fileCount":332,"unpackedSize":811659,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZl30kRZHhC1uXjivU0vITJfDOID1z2t5Ju7EnL7cYXwIhAP2z5j5cxfvB5TYWf/85AJQ6Mll2MBdksA51I7aDfFy5"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180330_1522409702993_0.9437914430236729"},"_hasShrinkwrap":false},"1.8.0-dev.20180402":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180402","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECON](https://github.com/samchon/econ)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"dd920d6be42e7f2e73ab944b98deb45d7939682f","_id":"tstl@1.8.0-dev.20180402","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-68NZsq/OZcQe8Mif2t1Oom/1n5zfi9Q/5on1n4l58oiWuH5FwDp6X5RdlJNcijM7T5rbeagzdUIB52KlGPCz4w==","shasum":"2e66309457d95df6ed0922e02379566c34aedf4e","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180402.tgz","fileCount":332,"unpackedSize":796714,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDA6rqPOP6lsI8eFi8/hPirXFMkHrKmgjZTeM45Dj7N8gIhAIhwWd19fPs4h0uoHlptrSI00KRCKLoZ1V61T/AWCVat"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180402_1522648310834_0.13441682564078472"},"_hasShrinkwrap":false},"1.8.0-dev.20180403":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180403","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECON](https://github.com/samchon/econ)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"38663a63351cef310914e991ec0a0ee3229dc1f0","_id":"tstl@1.8.0-dev.20180403","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-iTJIr2WQ8lAt61V7qZBqN3GSPh+LCuKXdaNn7DLpcwoCyaiyVE6C7ZJmKSz0qaH2JDriZXtKdUyXmcT2vl31dg==","shasum":"67b8b4d3ba7051e1575d07456045495424e84e2d","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180403.tgz","fileCount":332,"unpackedSize":797233,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaeei9z8m1yciLM8bcjXAttfgxOGyny2uYJPQY2MMRdAIhALOyahCcQDKrTjXHrSIoToD1SZMKTpCplXkxIUZoycHc"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180403_1522743204642_0.46140625519547496"},"_hasShrinkwrap":false},"1.8.0-dev.20180406":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180406","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECON](https://github.com/samchon/econ)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"4cb77f97704c2bf8048d250f5bb06574cc24ae5a","_id":"tstl@1.8.0-dev.20180406","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-C9rx35FuitAZH3ofqPJ+tSB1CE1a07Ingtzk4cQ7W9apbHs9faDJuOkFxuZw9srSmnT+iIrl5iErrDKL7/DEFA==","shasum":"201168cfcb4bb8664ca4afeff7a245db158c8f8c","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180406.tgz","fileCount":332,"unpackedSize":797242,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE6RLlc/y/VUscDp0Ky74lf2nNHvWxSPI/qzRcSdcSHjAiAbaCN42inC6mksliE0VADNaQAxTYGoVtekHvYpHWrMDA=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180406_1522996524342_0.34575179615620044"},"_hasShrinkwrap":false},"1.8.0-dev.20180407":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180407","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECON](https://github.com/samchon/econ)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","gitHead":"d8637ee88b9ad70b7a1be53d58dd3bbf99d5c65d","_id":"tstl@1.8.0-dev.20180407","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-+lxs187z8/Llv9a3bixLF5whCsiu185U33WijbVLA+YJ+cmeL8JrBcw+a+GWXtp/nOmbnix9Wu+m/rgmisCEPA==","shasum":"5d64dffbcf054a311e5d7672254dae352ccee289","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180407.tgz","fileCount":334,"unpackedSize":820840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGIszjuYEyJhS5gKX51aO8/7IL4vDFs76O1XTgYxU22dAiBcxZ7o6o0PFqUIwwSW2jOZz9zf6XINe/xomrifiWqpUw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180407_1523109096367_0.6339856523036702"},"_hasShrinkwrap":false},"1.8.0-dev.20180408":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180408","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"d1372949b9d189c7b057e96bcde2f9c30f6c0893","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECON](https://github.com/samchon/econ)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","_id":"tstl@1.8.0-dev.20180408","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-E6KVeEz6If4HpKLYyglX/SUu0QoWp8JaiLQWwQv/xwdNVvVechGBJJwS1SPSKUM4GTdmPgo8pnrj2jEO693P0A==","shasum":"c4314ad95369d7110bb2b229f3952ea97210bbc5","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180408.tgz","fileCount":335,"unpackedSize":821040,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAZMbv6Li1FIcFm3/CvGIMiw88d70bMSaOpuNOVisrC+AiEAvBdjPwrEC6eGZQzf4FJ6i9HJUlMLxcJvl7xL5WUVnIo="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180408_1523201397250_0.5964056065233587"},"_hasShrinkwrap":false},"1.7.11-dev.20180409":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.11-dev.20180409","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECON](https://github.com/samchon/econ)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"8d73007c86ad24dc871b80c668371a1939ce7a5a","_id":"tstl@1.7.11-dev.20180409","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-DFfqtKGKjxaQH7lAFNJfNJEuvqHlkKTcMEeNLIrKKFQ+sSgAAJFL7+yeww+6scwgHHVy316tb854By6VywIF9Q==","shasum":"a7273ee2dfbe16286f97e030d1993f6cf6621698","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.11-dev.20180409.tgz","fileCount":9,"unpackedSize":615220,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2HFq1lO3OdU9GzOEW+7kDduKRM77Cqj9engJSMjle1AIhAJQtPU7pRgdW17cC4UKCxoVUKSHf6t+nJIps1RVE8LFQ"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.11-dev.20180409_1523318924139_0.03434226633938442"},"_hasShrinkwrap":false},"1.8.0-dev.20180410":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180410","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECON](https://github.com/samchon/econ)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","gitHead":"d1372949b9d189c7b057e96bcde2f9c30f6c0893","_id":"tstl@1.8.0-dev.20180410","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-qztJj0GnU4cgJ1t963hF6UCAbKxEPabMcVzrs2SzsklT1pyVGytte8XG5KM6steqTdiR/rEFJlxK24ghHbeofQ==","shasum":"366bfbd71278b243dbc36b7c248a46a427ff798c","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180410.tgz","fileCount":334,"unpackedSize":821384,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjcuBA1qkuRAtfWoNR5rD3q+XuLnXD9ChFAHyI7/tk+QIhANr07vRsWQMROPqCdQGy+KaS7R4f6OJ8Auw+xXpnkF9u"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180410_1523365929812_0.42002647405377425"},"_hasShrinkwrap":false},"1.7.11":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.7.11","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"node build/build","build-module":"node build/module","build-test":"node build/test","build-api":"typedoc src/std --target es2015 --mode file --out","test":"node lib/test"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"licenses":[{"type":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"}],"keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"8d73007c86ad24dc871b80c668371a1939ce7a5a","_id":"tstl@1.7.11","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-73dLlYgai20sKZTnpPhHg2Y8axuz8Y5KBIRHuz3KL/ndBn994SjX/uAUeEiAsDNmCdEKz72Ho8pEhaVACLZZgA==","shasum":"84958669cecbf827b217c2cf7cd243386a068c34","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.7.11.tgz","fileCount":9,"unpackedSize":615691,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH7Ah5OdaeC7Fb8WPLhjOKfzJBkmSxzW+WNyzORWH4zwAiEA3uK1mHpmj/7Kmt8eRjnxKIQEUjUwcx3EbDizURSsjbE="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.7.11_1523510120287_0.36010049948156686"},"_hasShrinkwrap":false},"1.8.0-dev.20180524":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180524","main":"./lib/tstl.js","typings":"./lib/tstl.d.ts","scripts":{"build":"tsc && npm run test","test":"node lib/tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECOL](https://github.com/samchon/ecol)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","gitHead":"0b8fdd30faeb48f5cc1b2b891c1d408613fda365","_id":"tstl@1.8.0-dev.20180524","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-O564K2wbrW/eutDcNgXvShd1A4yTQAfC7PcvJ83/Ybr70BOt7orrZLWD3V3nEa7jDOA7Is17CLyaKab+g6jQPQ==","shasum":"4f8b45523e501b7783915196ac13e300c7f20ecf","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180524.tgz","fileCount":280,"unpackedSize":720528,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBYUXCRA9TVsSAnZWagAApx0P/RclGFv2YDpdTtUgVyjE\nMuENxT3Lgdc81HkrhK8pRuziwMi9cwomR0kMSidFNeXF3Rg0mXtErMFceQxD\n3anDrAOyShFiOOYhFcrZ+zB3T4Orvc4giwVYqtXNIsTLuiMZ499a+l/X8kPK\neAhEwNUpFELKbj8/DryEEJsAUSjhiUfSYCQe/NSdlQ/dVMIZM9kksGmkodz5\nG99itB2qeVzgGA/Q6z3thZotQFtCYUsESvHrJTIXdUOoPv3RpkVyAdr9LBuC\nzKouFK/8GUxWeFvfNDGnTpACUSz0gzp612zuKUBU5iRWyLB3eZdEA63x7RDp\nilFRuUunx2acPkZAtc3lcO7Mum3CZogu+IDk4I0oDBRvqWhkIO5VW4Lavs2i\nMPLJzOAfaJuW/7Hbk8D6HNB1YUuqJS5sb25uk23wQILXxAlrtNACPZedBYq5\ndY9/JcmMPHV0wO9UayiyFO/4CKtyZLvQ5YSnB09Ig+Mc2SJVqpBZ9yPn4t9j\nPNyIuRWxqOFHoCRfBW7CbqjoDRMRlyu7klxuhbhco1ir6QqgLmHKwqlnAycH\n39c0gWe8Ah1IJGx1EFCYkv4GklVSLQR8/A/gva/DYKn2XDv1PMwumoqMPXyo\nMc2xOMBiqbTZqMQeKzJCh6yLKPkWooG+1nivXqJ/ekGCh9aC1VnVfvuyO4i+\nkR3h\r\n=ReNL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCV8nyDqTtnNVi1w/lVdOjs2dbg3a6IRz2TAAdVOylKHQIhAPg5tcgJAFTsg++9AiSAMeQLGnbjJuXZ8j95trCOhqWD"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180524_1527088405049_0.857942168438417"},"_hasShrinkwrap":false},"1.8.0-dev.20180524-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180524-2","main":"./lib/index.js","typings":"./lib/index.d.ts","scripts":{"build":"tsc && npm run test","test":"node lib/tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECOL](https://github.com/samchon/ecol)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","gitHead":"0b8fdd30faeb48f5cc1b2b891c1d408613fda365","_id":"tstl@1.8.0-dev.20180524-2","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-Lc0Tn0H/kYEJ/Tm7UfasyxCCbw1g6V+PDNNr0p7yTVH+ULKdyFz5WrR4uSas480Tlrxigvu0qfoZN8MuNYt5lQ==","shasum":"be438029455a1458f0046900d8c903fa339b3a16","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180524-2.tgz","fileCount":280,"unpackedSize":720532,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBYY3CRA9TVsSAnZWagAAhIsP+gP+fbrpuwcO0mhFvndz\nCrYrH8w0H7Db6QBtEMc3wbIHK4XoBeHCkc+3guEdmverHam7qymMJhSPgqYr\n+fPtzo8LPS3CfcYBUrWjNkTLQ+UCJJ/IBPmMPg6+TI/2pemqwONFO8UBurUW\nPlOxPJDHhlMRLvVkl+ljfEpaJEXzcKQQno0I4XT45Dr+MfmxMow3BlaRMVqU\n9zyS7hSzSCAFhTFsOQrRNpPjxgwjNb1cVBVh8I43NWYnlg50lmF2umsVdbAA\nwHX547uz2imlZuKyV6xe4f+5JMC5BGP74C6ClKEzKSDSHtlP2wlamHTmEdax\noIGmVLxuSaJvVoV9LXLbEdl6b8oWvVnzVc8hZWgmB0iP2kxyAgplo6kJkhz+\nNJnMmeREmIR+L4N/4c/wsnLI8CX835WgKZqee5BCjonT96eonjlPtgzbhzpD\nx7odebVP1UCTQVyncjYawS0l+OoI0lNv5KdhujHxZt73TpEnqPiKU90H/R3+\nz0Wh6UBEWnnlHemZOPof4A9EEwbhzVakdPTv9bF4YrdCyQmtDPCIaUguIziJ\nIXELSV4KFjzHZVnTPSwBpmt79KGQEQAYjfiQBLaTIH2y2bbrtJOnZ0pbQaI3\nmg9ImGIpdHlyPeNLZYKMVntHeFe9axq+rerVnLXqIb15K+nKYMr8cFFViDS+\n3xKb\r\n=aIQC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC4SUPvCd4RBSoj+A9yCJNN0xH03YVOiSdkBqyFCju09AiEA9cBariK7YKTXRfJAlBlz5XHWx5oO0X3HEu9+qYmMgHI="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180524-2_1527088695148_0.77509654758222"},"_hasShrinkwrap":false},"1.8.0-dev.20180524-3":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0-dev.20180524-3","main":"./lib/index.js","typings":"./lib/index.d.ts","scripts":{"build":"tsc && npm run test","test":"node lib/tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"0b8fdd30faeb48f5cc1b2b891c1d408613fda365","_id":"tstl@1.8.0-dev.20180524-3","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-/E59D2w10WHwmEWd3AxdM4qJ4/L8c740oCKpzGEbOGP5opaY10qLYYisyPyvowbL1FUIePLMxf2E6R4JaMKHSg==","shasum":"1240dac468d8948dff57f4707370b376faf0592f","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0-dev.20180524-3.tgz","fileCount":280,"unpackedSize":720588,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBYpICRA9TVsSAnZWagAApGwP/R0zoUWR9tAoFdXfLs5C\nq5avciPyGCweg/F65xU1gtSeK4E3PUGooIJJVktlpRjpzShfhx10VokTLqsY\ndJmfMogSfULrUGMi93QD/c635KwJYxDdMrmW1sydF+i/5WcGxO5lnjp7MEs2\nVrgY2VSIg/T/l8O0t867T8OqTPfa82U9MdxsDUpFkMHKMmVTpAC0OM2ncbUy\nGuLGyZ8pnc7YjDkgIk+ZXdkN+3vkgbfT3brr2RSDORSIY+Iop46dB5LW/Skg\ns0DATrA/UT088H26pgFdsKCAyUApRg5GZBNSUCAeHNEB+MAThiRPn6Fn3NRs\nGzfUxnBvufuMqGiK9RVfo9xZcQ7BQAAtiqse3QuCT9xnPbOzyApq3KVeVT26\n8LZnSwy+ulHzeGCY5dh9m0X7usIG0xbkmDyPpGAhK/oLN8u7EjejyF4qbQhu\nHtZ+GHXu7Q1xs8wy+t9vLu1UMN/MWRQsNoRcr89c95y10tkoNfSAaYhcWP2w\nFH8hO1LpcMVf9ZywgsSLcd/XmXRwcpF1W7606rvIGnsE7e71SrzYK190/6vN\nZYwDkZGmiBMnQB8S0TBYxZ9czVNgY6pfVTT1kwD/c8ztiHvZVAqfvNBHu6MB\n75AI9REjF/OMjiDDa7OMO1+zd4h7hrW/4jzBcUH2aOFpQfBfyerGHIQhwEmz\nDGdf\r\n=7NWu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgkCATOd5cxZrf0IMrzGEZzp2/wyvX+vD/OuWhM7a95gIgBII8z4okmao2/9OvekTQ0VN9oY57zd7jP/aN6nKVzq8="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0-dev.20180524-3_1527089734842_0.1107184617157535"},"_hasShrinkwrap":false},"1.8.0":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.0","main":"./lib/index.js","typings":"./lib/index.d.ts","scripts":{"build":"tsc && npm run test","test":"node lib/tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"0b8fdd30faeb48f5cc1b2b891c1d408613fda365","_id":"tstl@1.8.0","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-eApPAzJCHohTnNv5H9NPFynRe4wYngVjhWEJy4JixNT3HnH/D+psGh3ik7FoXh844KLIpEzZoHhSsysFkcFZpg==","shasum":"b022cdb74b928302d56cb00ca2aca044cf765d1a","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.0.tgz","fileCount":280,"unpackedSize":720573,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBYqsCRA9TVsSAnZWagAA6qIQAIORmF4FS7w0HMsktJB8\nAG3FbRsRxD4BiX/gSa8QcF/ROcZj5bdf3EZAE9o0viO4Iv4o3Mm9xLgrUANl\nOUB5t4/GwqyaT5JJJdS0EAkeMWMjXplcZCSU1cA6VTAlY0NkmUVre7PS69HR\nY9JkaTrvxZ6tnM8oVCdlP65Wq5ib3gY7PAxXXdR9gPfcMlwCmP4tSD2D7FOs\nbLaKA3AMgMmzxl2QUNiCtQNzbTAnU1QPoU9XQ0dsXgnMD0+1q7lU3KUK1aNL\nC9jEGGeIluMYq6F+wVbaWXb4zZlW8Ih4PnuoojLOlU9AGvfuo0L/UtHuKXyT\nQqRCwMAZPQA3zVp2m0nRvBq4spLt5kLj2U136d9dWxHxSJ0h8CM/X24uOx5b\nHUS1HlNNSPkMQsLvs8pT9ubK50whVm3Jx2ksK5C0DHaFqe8sc/KjVcwaKte/\n6vVIGdkieeLZVJ81arRFiOivE2b9kMDP1XK6EmXtHHFpAsaa3X+zuO+OxYtG\n+uiOE8/c0IUqISSo848Qw/Tx7qPqMdR1cofiEB7EtTHtV+6MwnZotJNZ3sYn\nLGu4y6Hpy6HusCHVqQoSt127pB2Q3467SwYsd91dBw3VIaecq/iO+0gY30GO\n325iTKU+7hsq+LY0auYS0puSC1KGJmxHzzEISzapOGCl/sSQFtWkTMBZ8ere\nJR78\r\n=xfiP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGpv6C5bt17sPijxFagzYIgmd61UU4V+zsU9AiTN2pkHAiEAqaCNzOIaYJZh56546IGHJMAs4IVCDkzUN0/rN2O3Jxc="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.0_1527089834795_0.7086648213923983"},"_hasShrinkwrap":false},"1.8.1-dev.20180525":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.1-dev.20180525","main":"./lib/index.js","typings":"./lib/index.d.ts","scripts":{"build":"tsc && npm run test","test":"node lib/tests/main"},"devDependencies":{"@types/node":"^7.0.55","sinon":"^5.0.10"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"c24f73812948914958616bda44620d08a7c9451f","_id":"tstl@1.8.1-dev.20180525","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-I6d12kA0VrlMaibK6sHW5s3gvvh6o+iswgHLttQaqaSL8Kqkmiq/IopdWhoEIWdFd44h5jzgAh6ekJYIEHq1PQ==","shasum":"f846be8d18aefb03e41b96926b0e7b710e76ad24","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.1-dev.20180525.tgz","fileCount":280,"unpackedSize":700636,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbB3LKCRA9TVsSAnZWagAA3x8P/jBXOFNzPbuyZLEk0Q2U\ny4fonYtmhdiXjMQIqFIKr2wlunnneWfbikZBpA0L7iWH0V3VYA+WMjvMHRlN\no/mt2tSvEc5KLWAKitERYdGKzwdUXBmNHTL4FVNHUoIrcTb80uy4v7E2wmSS\nCbpJzx0wP4c5Se9GhKKKQrrVG2nLhPgn6Pg8HsjNz2l0ejNBy/8esRod1OOl\n8YJ5D+2T6GDJiXKPWrGWGqNOLZdRDNl7nO06ZZxRgtEM6SuE+AxUDQEsxKh2\nsmCwnLjaE+xKNI24TfpdtdUzmxzp2zHdKNi/r1HturasNpMaSKOlcPbB4rEs\n3DlANmUrhb9GgYFr3vE5nDQOBGAwPzp1vEYU9NtpasaC5EySb1xN8oLtDjqe\ntM585bsjGFSUWJMCCXtCdKRL0ss8JeZZloWa/SZRcmIyA3wwrpdAM/c/pYC0\nqcs2a5Gm4U1MI/jg8trzOxvou6a9/Rz0ONW7yFerAYjwAowELZkwHnEEnWg4\nXLeWSvQ7EOMLUAN8kI5bnMuJk3h1M/R8beZlICcNbgNk6YSjopLvgdqmoa1T\nmNevSdUaDt3Oe6wSrrUXrs3ln3N0R8BnBMfhdkAEqxvP/Z9YUr00Lan97T6y\n+xiI2ioTNOYcRl/kvlb368DV+1F2P77iOUFmRu3eHAQYHxGDRPXuoSU49Pkl\n6rwj\r\n=i4Pv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB3vJ1db+RyTIjArLbAtM2FNYanJdWvBZbdtAFrYt8eLAiA7ztT9YOLuuC45/pvQCnRFiYsRaNFwSCKCuXzR01bCdw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.1-dev.20180525_1527214792736_0.5541089271481303"},"_hasShrinkwrap":false},"1.8.1-dev.20180525-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.1-dev.20180525-2","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"f486c001cb4eef93e4965aebf5acce3bbb787c86","_id":"tstl@1.8.1-dev.20180525-2","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-JsjtxHng+7tf1CWkA7i2BpH534y/7o4S1ZnZANaFRlZZ0xph7ORLpYYF+vkOnrP8VkyEKS0iq5Wqg3lYBLP/oA==","shasum":"8b53237452431482a99210de701fc61d4439cd12","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.1-dev.20180525-2.tgz","fileCount":6,"unpackedSize":18884,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbB5UNCRA9TVsSAnZWagAAaEUQAIQ12TGRgM43eGXmAyMz\nb5m+iQ/1xqjfwEojb8xo0TwwGIUKN+Oj9ps9jEg5aMYiT/2me+Ppxamp8vdi\nZN3gdMoB3h/Ty3AWyj8naFLSqzEkC3aPeapNkwAxKWbfKubzZuIl9CMHiY4R\no4KkOlsPjgzNaD2GBQW3ZWzNUHV2guk+o7q3YwR93iWu5DxX6uYhbnHNPIa6\nrEvwhcFGmqb1uZOAy76DzglnOrzGApkBXeExnNk/fJrOogAO9Nyn52VbSwWl\nrYTJR0UuqqBkzNX+4TpmupyvrnFVJzf1/WhYyCy1F9KGLpFw1t6JxFlHKKVN\nouMhDAueapBB5+Ioej+1UPqzh8tUbX52001w9GOXnS4GIZxP6CsFOt19/Mu+\nGLqY2U6+fcAWQmeW80GnftflWzZnj9ttGHbFYHBfHoj5FeCqf8j58IUMWG4S\nDOz1XI/wEkAscWk2+tL9dj4mLhNobdyGTkd+WnH484sWmcZ/xaHYofURlq1K\nMaQpUD30cm0fRHrXR7zQPGmseS6nfgBTa6Id977UBqZTuZkBx1aMk488cyAc\n/AjWi4hu9rydIagNwpT24Xp3Xjy7DyXxJS+YLnyiA0c9HOtTxAkOra5u2aud\nozyaxjEftpKdpYifJ203qHxZxro85xDmwzvPMwRbTa5t57Sadp2rqDjaOJBp\nZYyA\r\n=PUjP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAGSTwJkub5q+dH9kcnycWEgxAlINrivaCsqz5M+U1/5AiBUcv21Ef3xyoejOuZD1Z1gQLje9Gv7cIkXwLgcrHfIDg=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.1-dev.20180525-2_1527223564621_0.003459422979873006"},"_hasShrinkwrap":false},"1.8.1-dev.20180525-3":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.1-dev.20180525-3","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"e0d65692daa34b3769f6b81e901f3c658956194f","_id":"tstl@1.8.1-dev.20180525-3","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-baF2qDe1Ttuq7dI/L4SGgiWrsgWxJTl+ExXidQGKKbHB5i23c/Z+jI8KXZCoQwbgPBTQi49k8h2qSx7L2bl1OQ==","shasum":"9bc06d5faae3e4f23395f2c229d5b90dbdfc69c4","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.1-dev.20180525-3.tgz","fileCount":338,"unpackedSize":799889,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbB6ZOCRA9TVsSAnZWagAAQWgP/1eIICK4RU+ijm1xYmIU\nPxfdNUolfLqfbfArXenUvox0kRov1k1agEzfHRsl/hJcrqtuMMZsEA+JE4I8\n0uYNctb/YHUbDeR5TPun0A2iGkOa7ppSOvOfqPqPJdWDS3EAKmm/zENuo3vB\nZKowbRm+jtDHcccKU+32aSP8OaWqqhz0ga9NflfRa31zpZQS7N6PSDxpWUCi\n659ym905decmGgMEjfZjfeAFOV/33YxU3ESDP9RfyFVIlL5mm7PQRpjbHS3n\nN+HQOCj+oBOELQap9eRHfr+itdKUG5BpyYygnyHfguY6Rp7PcqINhEsf0IQp\nPLCGtALOsiccJO4R4wPxoTw+pvr8W7nwLI3TKrlQ3kslIKudj9BlvSkdM7XX\nmnUC3wIcis+7cj1rLI7gxU1EC2DXlGOi9SEQ5pqrItD/3OPCkAURcBBf4EZr\n9JcxpukmTH6ChaxjNPDEaOr1FVwrk4pOVvlsLCorlDqG9zduOLztZnBK/m1u\ngR1r2du0gjPbgbbkGSjMtO9WbrcS1r0t42trMi5pYLnZE+30SlteyFmHYOKz\nNJcrASDfJRuY20fMNGawIwcLChkB82ucH+Qgxnss+oko7Yyk8+9KWr4ogDp4\nXOtGH/WuxxlFvOwRiME+m3zEf5qDH5b0bm4SyI+PzNNBrlpFpa6BpyatxX2j\nL5h2\r\n=UBVm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCoqlBUAzz7Yez+lDG8BOpZArtzRXkR7USj8zgegX81VwIgbPZk2spiJ0YG9XQ/kSqbU5PAOWYVflGfZOuRokn+lcc="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.1-dev.20180525-3_1527227981425_0.7487468730119944"},"_hasShrinkwrap":false},"1.8.1":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.1","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"2a92ec2f51da19604acff887e27ec54704186f65","_id":"tstl@1.8.1","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-klEUsXQ3uNXke5cQae5hENy/h1oNu9lo/ACPzWCLLCmXuBnqPgXHsiAoN8rfOgGKq5MHHyokatJEBYxMSqm2Iw==","shasum":"25c58d3acdb88cb4ae3975de2a95a17a91d8700d","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.1.tgz","fileCount":338,"unpackedSize":800069,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbB6msCRA9TVsSAnZWagAAxNMQAI06T4dpbGBxlAyoCM+R\n6G+u6GGon5RZEfvpDLjGFhuoF0QJYHYQB+La4xoHMXGgegSavZ0//wxYlw8n\nRWevb4pYTjyA2lSGqVOpPtsU2RH2opv3kkGohvJ1L7tRPQRnF0CXe5hsz5Vd\nDOLUK3ybVBtPxmGPjmkG6mXSjQYn24/KIzjZy3D4fPqlQJC3b5rm7aRYB8pQ\n78+JOoUTACQ9UMt//Rgm7G+tpJ4+4WiQMqxqg43xR3RrZGzC+48vF00guT3c\ngchMUINrdaVsrt6659Y+btgyFNDDt1rha+qyduNUSfXe9+SAl9zuLa6ujGlP\nOz3vVrGfocK7j2PUZ3Awh7VbY6UrYGf6/dwmGA1kjfWQGFysPEoG6CTuubeh\n1Xa1orgXWnOHMyVxVlMHfLEP8rSIz/a0lbJAxTAMmHIciZy2u6k7p7z2lbm7\nOyu/bM0mvS8OFzRKLsgXJBUs7Dc+2aDHagu5UmlJzeONSt6Ffw+L+h3aCN+k\ngqO0/1s+9l1lncopIBKi1xyeFV9BAw3A+qThygjBpOmbvJT54PYyusXidZem\nLs2AyjXU7MQG3gDg03Ed3WRN8jsGSYQUnfKTgU3rKdaeACa44kSBgaHTI2p7\nUuu2wczhgPzd/CCGPjYudn+4+sjEWgtGqOy0n1Ynub7RTaV8Y10VPe9fWgWB\n69rC\r\n=j+y8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF87QUXXp4DIDdMf7mH1+I++/1IHKbUaOb9uePknL6+iAiEAiQDB0yePgrQb2zIndvWqWC7wPqkUm3ARiIKWSV/JMJg="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.1_1527228843558_0.33179158744092474"},"_hasShrinkwrap":false},"1.8.2-dev.20180527":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.2-dev.20180527","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"d59bb6000b86eddefdb2597a3570517b842a8cc6","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECOL](https://github.com/samchon/ecol)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","_id":"tstl@1.8.2-dev.20180527","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-fPNirf86mKz6+QAEcjYHi78f0Rgb6jx/Sa0b0Y3FwJ+XvGIjo0+Z7+gOp/vpyOi2dlq5Dx5NmFj58Ay1fIUFVw==","shasum":"8fc2c06cf2311ab7fac203e3bd3c9fd7a88cefa9","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.2-dev.20180527.tgz","fileCount":612,"unpackedSize":1523987,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbCsByCRA9TVsSAnZWagAAFcYQAJFNg4QfUsV4xpEKppSe\nfOzGai/cQoLWYqAHJPY99uyNUvaEa1Wop/ycgft4Qq/nN/647rpYuYxKD9/m\ns54JT3c7IQjus1wpSte7Jzp5eWdKUizRlkb6/fr9TMriCntdmYX6eawEuG+V\n954/AK22nttvzhA0J4uo9j2DDu4oNSM98HGF6BLrtSOR3JK55pvlxbF9lb/2\nPKIuK0AtdKF2QDA2sp8/AIXVTUsPMsaWkeNraETh7qPMHYjPZ/sICU6sC6qq\nNnIdLj1pVTYtwe8SBgrx8bU8E69OixhbrCdRkKcDrwZAHO9Y9W6MSAA7ggBy\nFU0O4VJM2m0U2DMso8mukiMfEgBq4B0Xjt9pl4ICw69HO0r9SLNppmXZhuWn\n+nspVsxyFOJ/seqUYw0KU2sa5Tl5zn7gj0qw1OZqmRHpgKNkOTyPg4dm1hoB\nufEHKVar/kavEVdauDxE4FmKMflF+tworu3tuQbb1+IlFua1ikaWBBzgpg9Q\nQ0DFxkKUFhL8hhsXxCMNrKXt4P95lGIcVfzFZlN25pSv8wDrS5st9wV4q+rM\nsRGsp3ek/CNyXOvRU9cfHL6MoZ1ub2WaYxIvC+T5Z1fHlPDxkDFLjh0YdjiC\nc6GUDXiSI/Fpy9J5NpwEcz/1LR1AUwETs0hZ3IFn/wkW/8tRKrtJObMpTh9q\npYBo\r\n=/WZU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCh/wTHNBvFJHYULu45OEt78wE4esQ7l+xzed2Ga6zITAIgKdJMTs4aI6SFjB3lfatdkFgYAvR3eRcrsQhM4AV0+kk="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.2-dev.20180527_1527431280385_0.035534372713840634"},"_hasShrinkwrap":false},"1.8.2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"1.8.2","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"d59bb6000b86eddefdb2597a3570517b842a8cc6","_id":"tstl@1.8.2","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-dzIek9f2yoNqkc72y2oJ8AbSygdV+7CXZ9eLkbqEWV2TlVltZhinyxj3Aov24u56pQkYvNjjQQ3uBs7EkxBYbw==","shasum":"75253a13d5ed9ad85f61b3b3310262552819abf9","tarball":"https://registry.npmjs.org/tstl/-/tstl-1.8.2.tgz","fileCount":612,"unpackedSize":1523974,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbCsGtCRA9TVsSAnZWagAAgKAP/AigkYR3w4Y5+PzEfNmS\nUgRQIn9CKed49Hh/HNnnob6ROoEdbU9ArNiiMcrobVBWTvpBwAPszExsyQju\nCuUmRs4JJ8nO4wt7O/a5i7r02XzexPUnX3sPNoucunvpcOGESNLKKLGxOA9f\ndJTBbpOLhn9Nj4c+91YnV2l9m/yEgIdm4ahUYnTMU+0aKZ4uXt3owESOrRL4\nYdXyvzuDpX8+dVSp8j0q9tg1cOINn6c4wmCJfGS4fSzgDYPwWP7ccOwW/KP7\nAfpc7H3/EsUqBQqZCP0eow8Th2m57f3l8/DCAKVxpm6UQDS1FhFlgu2fhtBN\nOJDwVlKicuM9H2scw2JFftqUycV6Npsek+51D5s2DqXwnoNfTmGwJnA8LjUx\n+1OVJix/ALJGNG9G/E88Tl8dsFUmqa9Rxhq8LKrLli4UfcdmA8qX4f1m2GKy\nTuKhbEvNDHOy6GPqDb/0GHojiw4IzknV2buywyKjSaIORvoUV8VLylADmmz/\nsqQpNq71gDgCksBFzdeYS4OnW79CJBlyT1H2uTFzWIH3Jki2yruB1E7vMRT+\nKfZGpZawTVVy1h04IuUX6Yztan5hKNEcEhyjFxD9R+KfKnfh+LsNWcI+Ndbh\n6KPKYWuaNDoQ1fP72p3JYqNtz7T4vUIh6Z3GaSlcAln+1FKfxx3gsYJgyez3\nLmPs\r\n=CWyt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDabzaUS5Z0J/bls3aZSQhhSuHNAfSVl4w48zpdZS5y7gIgZC6g1I9O1azCo//5Uu3oBCeJAPVvG46/mVAGsPo7Jc8="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_1.8.2_1527431595408_0.3443555498361581"},"_hasShrinkwrap":false},"2.0.0-dev.20180603":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.0-dev.20180603","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"ada9f6d62cee6de414529443ee0c4395aa71ab87","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECOL](https://github.com/samchon/ecol)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","_id":"tstl@2.0.0-dev.20180603","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-Ww7kd3vTYgCnDIsl7/1MVHiIpQ7vR3HIMx/GNWxPUeFF9rPfV1HochG9911tBhSMOHWIUqTLdFlSv84NE0+aSw==","shasum":"188a716afa332cc0aedf5baa4be779226218ddda","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.0-dev.20180603.tgz","fileCount":338,"unpackedSize":822598,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbEwqLCRA9TVsSAnZWagAA0GgP/1ubb+QUUG0xNuSb4Fjd\n97lRobKQHlQ0kYsZSeRe7I5tW7qA2CxngrD5t9s/FVr82Z4iVcfmKkvyOzTt\ntSIEPAfbiQf9LjIA6Hy+XJb7f1ERalKs7nKviqVayGTjm0Pj0KHxeu48rDrc\nJmlOx+X3nfluKdj405pX6/mhjxGNygE6O4AfP653ydZA4b8xlnfwAPa73gpE\n/yUh2gn7/czRjIPGFzy8ZghdSNhEAN4uyYzpjdGepPyOWtD0zfPYwJIfGRp9\nekdK2OPuzS7zaTDAz8CfNTDMMYQGKzoz3lr5lymGr1seW51eVyqz9Yrk9Y0n\n94yLimKhVctX32bzFBSzRZ+0NoVyzPyY2BiPUfcFTXKn8nAXJ9tLbSQPdOc/\nmvGFFtJaNQAuESAWBQh66Ffv4CgHwwcifleb2uQV1q5Ahgo6uqpuoncyG4kn\nnJpntx7fAHYuNd3w+XonueL4w4Ym6pcDY2jx54WwIQ/P5h0LoOsjamzTXK1/\n0ZsrYgKHZM80CVdqYQ3FBxQ2hkrEo6WOxP2AIplW+BHM4EI6SPFSzxZp0DEv\nFS3PLUqQ2jcLTEzGXgwkgdCHR53+q+jg5lbaIBYc0KNh8CJ5X3avOYUYXeq1\n5m2bxalX6OIJQi/SGtxgp9bIxiUixjzdqHBIId3PvqHzF7juppiKSJH7bKk/\nN8I5\r\n=5cwD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPUk0haJ9wibrvjNpeqaQlUmGU58CZowkdfCQm8MUPrwIgFLcvvp7a/xSx+78ckhcu5VO8K+WhUE9bh1G3K19saNA="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.0-dev.20180603_1527974537628_0.7253928382712107"},"_hasShrinkwrap":false},"2.0.0-dev.20180608":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.0-dev.20180608","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"889e71e5bca7947022373bef356356d41bccf0ec","_id":"tstl@2.0.0-dev.20180608","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-QcQCvmTvur4KOb94l/y5QJoymhjNf7QgNYdaXkkUmYbGYh9jfEwpRLMxY8nFpx9f+qx/IbysK54Br3BhmZIXiA==","shasum":"18d66e84debd40e37cc4117f4ba246bad8e2bce7","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.0-dev.20180608.tgz","fileCount":504,"unpackedSize":966418,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbGjutCRA9TVsSAnZWagAAAxEP/jtEbQ83Zo0wPv8JoH4X\nlEnb+YqNOZMtHqlBZDMIZif0AdsLjOYEnMlQ3uLvbuFvMB2s+wlU0+tTLPx9\njj2kFyJXq9/RrnM8EHE1Q3MyOiV9Z/tC45ZMwK5NUU0picNrxmOI1FuEo2aN\nASLFo06ot3dmFdUOK5TaG76k6VBM9a2orB80sgjB470wBslUlDDyhUhgjKpU\nA0EvsAuKb8DQZJfmx0f3zAvLnl2XXyKJWqBA9Wxw6pYXK42NvME56jmgoRsR\nM2WMI7djpURiC/zNuALe4xzgwi/fEOArj7UT2mdceo7NiJjmC2xF5hNgLeHv\nmptiRYagFZMGTVXiYWU9Ba7T2csGPbjl7lXBFoLKjU6fmooQ/mwck6jJ8WQd\nS2s78CWp4V55OntZ8s8LdClzQrfBhEN//7hh8Qt2DabWEYj8Hi+IqrnZaNdp\nv7l7v5qtZ0iWBaBlpxWYaVX/QxrfixSZ/IxVzn5HeSVFZNlYr0jo3kGVT5ni\nK6/By2/33ZfGwvbGoG+op3L+jheGcjs1nWGvxHNhUKkCzfzAkNnHEAWb9jwN\nHov+rT6B2qfUkYbMPNCXI7RJxqVr2DQx+0soCSezdUVzckfr22uWVWeUdvuD\n3SQz//mmyGOfm5bZBIEbw4qiSugkq87/lO71JSSBguUgd5N/9X9JqmeL94NQ\nLZ8n\r\n=r/EK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDuCEKdrlDDX0pXVZ0/FQyrAEW1YZQbD0LD3jCNBkpjJQIgWxBVujtLqyxk063OnnlQi8DB0wDk1LVWIeNt+kyM5Ck="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.0-dev.20180608_1528445868527_0.07935634007820225"},"_hasShrinkwrap":false},"2.0.0-dev.20180612":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.0-dev.20180612","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"a9903d03ba5e64c8f542cdf19d23d7d1281e7fbb","_id":"tstl@2.0.0-dev.20180612","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-hOHFm3y3iZagEA6KWS+n9LfOr2AkCm13iv8GCGRLvlRFMBbj8WcGcIHuRqGcayMWChuCUWD0TpRGSQZJnfXeVg==","shasum":"c4f26176fbe68a834f02a7f216c26ff2e4407d4b","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.0-dev.20180612.tgz","fileCount":513,"unpackedSize":978128,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbH0esCRA9TVsSAnZWagAAg3QQAIvNrU4S1miVVLvrIZ7Q\nWs2zzkYASzr/WS5s1ewmDDrN/iX3+EjK1r8PwcDzv+w6F322XbvLK2Glms/d\nZObW8bK/HROnEVQYdAAfZY9qlxhA5zb7Zdwddu5IefrJ42BF+7JWMIsudiNF\nz+SeH7vZgzVTIJYvF9a6BRxkTIzk1tUHvi7fqEmbD2eRQ/GLl37yTtZg4Uvx\n8p5gQans9ABDU+SIsbRbfFliRHe2/TiyfSuqxMS5o6+JT7KkzsDuGU87uXyq\nO69YDB68PrOGXUm0jXz8CWTBuM/SQCdN9GW03HPutaz8xKsdVSuHEZpGIIWg\nulaCBi3vvZ7cenuC40vBgbvmtbs5WTZq4WDY//1r6ZTm2JYBmXiT+bmW99Mf\nPEkAS+GnwmzS3GwzpGKsI/3MfzJF7gq6LRrhoSYOPOKppUjtoy6rqfzDP5nt\nBzcZwvYVkwEHQmlctH1JF8K4BakSnrd71f5y2dDoK0g+zHY9MZyl98oMyBSs\nhCDv/EPEUEVaqgCD4bKUdWiAXxECNzStZmf/y/BkMXJJa95X6CKunYMpQywa\nrqlSdkCNZMgh3oxVYCeFDLTq+olE0IYeYrBny6D9pM06AQW2cYJNgW0Uoe9h\n6a4iicQOK92BVo+83gzrV/MXmGs34+MPV3jz9z9tmV6aN5l5fYiJIz9D5P5t\nxEBd\r\n=Ccb5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA2I+9BAX3RSPVl9vXCIzJ7HkiSYn2vYofiES57JHtciAiEA2LFrohkM9eroj0oH1j2a8LuZwwTuKrnUCKiolafShjs="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.0-dev.20180612_1528776618337_0.1450080260140476"},"_hasShrinkwrap":false},"2.0.0-dev.20180613":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.0-dev.20180613","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"8f9d5354af5bddf592dcda7897107d2158444f92","_id":"tstl@2.0.0-dev.20180613","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-FWCWxfYZsnvwtTZrEvirmo5Q4VuVeY/sW1G3jDLOm5A98vTycbWy0vMm9lEIF+b4iihdjL9I10b+pX3C3P+lxg==","shasum":"0feba578fd29c17f6dff9f43117bc114be2c6fe6","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.0-dev.20180613.tgz","fileCount":513,"unpackedSize":979393,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbH4ITCRA9TVsSAnZWagAAarIP/i0wMukyyLlc8LeB/wyS\n/4BPFnr4uIq/fWl9R6HRim/9r5+j7r3NixZobvW3WwF6M2Lzb20LZOTgNh+C\nGQElY/ln3XKpTnpp3nZeSlCjDUJQBddAaugwhiynlyrTeYA8CURHjbk59uFS\nEtNJ7cy7rqhm8RQ28LBJBXblVOVzb633IX4At7bkqkxnzakudBlWtvr+xH6L\nLnmF9rPPs8qG1wJhEuw4dP8VD7iuCxkN8C+cOmFfVZ7shIQ4kZ4h2l9PR4qQ\nTX5DjwOX+y+rOQJ4ZzRtBdsE0i5xsrwyEAGeDMSruWKL8PJSQ4svX9ZVIITt\n/yLAjJ4ndNyNYYzQ7O+o3yAO9a0L0rSbGFUUtraIsJooMh+WuEgESpliXyMK\nMbuR3QyKn8oZH/qAJuyZTrC30NlT3zWp3eRUi21EPVudTNuS2xfGl/ejjlAI\nH13wzAo/kcDoqUDEEwJAl7iuiJSAZAzpubOFOqwQAic1ESql5w3AuYOcLuN6\n/MMMtm/uhXC0dqHpM6cHRoMKDcvbHuJNxg7QmcB5yZ1ZwEzq3KHi7Uyi2qAJ\nqm8xyFsbxEhv0WBqf/M0S7EQbEbKSBUjBVrYbd011QeJY/1qWnU4MPfvHRa7\nHT+h3FG/2gbsuzi3ZXg6yr7pO34c10zbOPIAJ0PSBKWi3yy0uhmFv4IX9VUF\nNtN4\r\n=a9JV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/RkPMvJru0BZk+twbtVEj4MbXDiVj3Ysz8Aif1gJZdgIhAPUZag5YBs6zHqMa9ymvsiA8awP9VNuH3u70ymNX9M4n"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.0-dev.20180613_1528791570990_0.5788547424153097"},"_hasShrinkwrap":false},"2.0.0-dev.20180614":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.0-dev.20180614","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<special_math>`](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"8f9d5354af5bddf592dcda7897107d2158444f92","_id":"tstl@2.0.0-dev.20180614","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-B+8bmnW7RxvOlFXGYbAXOKro26wdnh3Yh3JC7mAVd7RotP2SwzD6XIXvSHFqg4aywX/p3HGQlUahFYmIQq6osw==","shasum":"4979c348d2df84886c29329060882d9d0bbd0797","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.0-dev.20180614.tgz","fileCount":522,"unpackedSize":988266,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbIdCNCRA9TVsSAnZWagAAIfoP/jijtVRVqi9loO00wVxq\nYHZMcxhWcAhgy/O0ojKCLXuhfZQwfVfjO8cFVlybwKNVITp2xmOR1d/SqIMh\nFyA9JxEnH0Zw+2dMTdm5Udh4OKKmHqe3eL/r+ycyV4ERkBiPoQ2TsZ11TatX\nTnIk+iV4TgEyubQI+Zuj1Eg5yDEbxvqgwzO4KQ9TtAJGJYYVVrUoeRYB4AZZ\noB7z1oey6N9aMc2oMtvtL92GLlszQaFvmOH7E46QtYmrWhj+SfNtq/SU2jTI\nCxCFsT/ms8dPzoJbhS7PgmxNzTisEkzddj8uxqk8tIypi02zhQL0tbLSuOTk\nMacxRVXI2LojwNYhyivovGsG+mKsYyv+v0tq1aRewAGrHk4wWvv8Zjla79Ga\nzXkYj9T6G8pIbTZghdFpvtZtWHltexcpn2Ci/2acYhUaTUiL7quNYhMGYdtU\nBecx/fKyVyjcN4NEGExX/KgqI66SPlCqq8bk0pg9kbAvMJyFfty4j2NJNcK4\nFKQ5tzvvmNS01e2oG7u2xYCEbFF0Qvm3t6IwlvYjte8wTkRGjeIagw4X5h5a\nMPCg/dVIKAspinOQUCeYmxA0QKEUrg3aEWrc+LTBZuvkrvzWwxye3ari/3Gg\nrPozh0VstNMsLBzbT/sAkBUFce9N5317X3VOUiaegQ2fZr0jh63pW1y9Irlk\nZ6+4\r\n=Uk7P\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFdPtNSrQltOC2kUPdGa1Y0Uhe3raFHlc1evyyM/PmfYAiEAwovWkHbDe0Q1DqJjXOsE7xSdKS3BTtFXwDVrO6PtDRw="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.0-dev.20180614_1528942730685_0.7835334163845116"},"_hasShrinkwrap":false},"2.0.0":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.0","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"b46d085fb22c726e5da80de07bd6ceef766db7e0","_id":"tstl@2.0.0","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-j/e2z7I5l2CshqlMxOnaSpM06QabWfiwnC4RytHAM5hNr544SZIyRfwInBKUeqt9SIY5LeKkKaemTQEFrg5bHw==","shasum":"0fb08b31291e9ac76a2d449481c4a929a7f0cd79","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.0.tgz","fileCount":522,"unpackedSize":988956,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbKJCMCRA9TVsSAnZWagAAShkP/RPDb7SW5EHZDbdigS2f\nRhjaW5GY7RniXJbOwCKqwjcQTv6SzyDZw/132UfPb63M3rs6PeG9AarxIuYA\nc83dVg0gFg0yX6kIi0RfXL41CT7nyU5oGUZByJDShGr58kAAelAfNlmYAuQT\nxL5UqL8EU2vvmlWMBaX6qy9x1iNthvGiNkjUOIW+80F3TisKWZJv4/9fXd0n\ng4djNofEZgObr0r3j50gWe1WxmqsgYIFt0fQHH0/qVn9LTGOAWYBCaCWU9ql\n7WsUjCkyzPSqsj/OeQzc//whL/JaaC4HyV/sPnuwpMOfG0ndKpZ68bB2AaI0\nY7GkAOxXvAGhZsKme1cyFt23c42uPChxYHZXB9HMjP9ydQ+CxIQEgIQltyyB\npj7YGbILi9HqcPjblMLsizr6KM730AwFCiJIbmSHgT5l0spWas9Da+n/0aOH\n93/pMrvbEzXUu+snejakP22370r1DXm/JPWU9hK2PW02CFlNDrWxNAiZ0n3H\nFnINqc7NpgmPK4xacdvJV/RQm2O7u1W3LWMEVALVFtDGVWgP/FApTVGDq99M\nbjRzXXRbOPalBB08j5CibeD+en6uB8XHxp4znhHtquV9bvegXkTE9xdzVqj8\n5BiRq2TsNbwvF2QGB2Vy+a/wF1QxWC7ifZBjMPd8UmR5Mwt6jSH3FKXy8GJ0\nPM/B\r\n=YDiv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGMovSgGH5cdbhO+qgEpDAzY4V5kI1thP/nOSEVBfPaLAiB/JIgs3Yh4jNbU8G7yWfECmoBv4r6WBQC+/GbI7x7EzA=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.0_1529385098179_0.7259194561675393"},"_hasShrinkwrap":false},"2.0.1":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.1","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"e20c0f9db876bfc41cac5f1c12b026be2300bc71","_id":"tstl@2.0.1","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-BTWCoLYnrLPNKfz5kX4F9XtGZQ7rfpI1fvqslwTDW+I5NmTDSryOEYx9XbUVW+cKbthEAYe93aYoti8K1j5XHQ==","shasum":"e9244b95756a7dfeec157594c7fe41cba51793b0","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.1.tgz","fileCount":522,"unpackedSize":989078,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbKLvXCRA9TVsSAnZWagAASswP/0Y8JO8nNidWWvWYYGwJ\nHfcmkefgaWBq8vV/Ij6vXPz59VhGDYwkDS9PiNAPlIFlvfRv0f5h1rUA7Tyi\n8aqZ4OkNm9R1iRLQCeO/8UAPB9bQ60N/HBy7ClME3u+JOXshs5ho1kUPOkE5\n5gPsw9EVuF3ebFHVtYVr2Ydulm4Izfi84iSbvLkQlO0aUF7k6QldnLHdygUx\n5uw/ZAdEkwrpOHoHKZatZ90FXVizuF7Xg4FmZCEhA3DI4bIqUqQlVFoZqsu0\n2+hpDuMadXCDBTtNzTdJ5EO+pu6xEw//rbn61y38BQ+AXnd8ju/qoZhl7qxY\n3YxcB68Yrfscc9XvP04/wXUliz2g96boPhbnqxIUngmpUhGzhDiq7oKiqQX8\nJiWM3gIwN++UYhibbxYSKvAeHpwJcykHXO9pdJL7ap2dS6ljX+0TNoCsNhWg\nVG2JekmVFQUTCeeY+Ju+sne90O/Eh066X3uGVfE25tQq7QlDvp9yiMTcZpsK\nPB7IcNkfDU47bDog9uMWfzlshd2PDLhXae8SntNkeaeKnxNiDseYCHxVda3e\nxCpngPpP5SCMw02MD90t5bobv5PCtY7PaxaI+gKrf+18Zw5N58G35+7m9Dvc\nTd1Gu6TnWwwE9Vou4naszX9AC4R4G5ILASS3/EVWQ73hHv+GHPLLM3D8+ALm\n0uVt\r\n=aSuL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGMf6p00qOFUdfFKDecHuO3ar/raVnYzEFm8Kbb+5skNAiABfVcbkr5fjIblmLLiR1tVjNDeSsFc2ng8+Mj5vaKWYw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.1_1529396182093_0.28089421175724905"},"_hasShrinkwrap":false},"2.0.2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.2","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"e20c0f9db876bfc41cac5f1c12b026be2300bc71","_id":"tstl@2.0.2","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-NnP2dumlUFKqqHORwldxqDszquB5V9VMwFFsPDxJ3hsNfkf7Lxs6RZ6JcG4ALCx2RW5yEygkK2l7S9K49emU8A==","shasum":"062c4d9eb5b625200cb7d251352daf34bdaae91f","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.2.tgz","fileCount":522,"unpackedSize":988984,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbMY0RCRA9TVsSAnZWagAA9FMP/2yb3Q7jOApAZkWgwEz0\nz4lrCeQ7NVR7eT1L/AUrAIW+95Im7t1fyAc7NgKp1VNxZ8chZZqae8KW4ABd\n4n+uD/8byWrV4NnkFte3WDnhXH3xk3tXRow6rhFOw0JCQn1d9f/0JR1WbNY0\nWBpAqtk4eg95Rlqs6lAXudtiusa1VgaHmEh/zDq1KcqtOrRK1LWCGZXy4Pwe\nxI28XYo5Uc+cCsduuMDgGjnr7TTzw1XEuETSM30pNF8fTGbwch8E29UDVdrE\nrU89dSh0B6N/IbqpDXMLi8CG0tBmtaY2acQU/xAvDhrwHaoIN67ytWaicW11\nOmdjMHGi9wUdUw4tUUUutQCQCRwFhg+Cvy+dwv50sdZsFMfvyAvtFshkTuhx\nLRqR8BeafMcFKUCwCi5LoY20zOPKphnb8bX200MLnr0F34Y/esMcTQ8vAvC1\nrD9hU6isk0TbJftLdu40C6QBk8nGFnIbvwYY/Qpayh8XO1twYj9flqI4DqLM\n7oz2qlqX8xP1SqysXkHgnbynQZGY0PkdxPvY/XR7JdffANk4jh28F7gsROXK\nslEEBetQrgRWOcdoaXU9tzu253S6kpE4miHHIeVWpwUdulspBCNmkNTM1Bne\nhZU47EfyOPWCZ3pOVX1sd1CaVyUivi8FOOBCZoJjAWeEgaW2mPg4ync06Z7v\nHLj2\r\n=EuZn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfu4Iv45TaDXFPQ0TuvSF0R6SWxr6/cwhDiAtYCo+COQIhAJBHymAXqwMrwLpDCpmViV++5dpKnNz7kfoA81sUlV1C"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.2_1529974032928_0.740054187806177"},"_hasShrinkwrap":false},"2.0.3":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.3","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"fdcbf50f6c6c42e0ea5c30a23395dfdeb96dffcd","_id":"tstl@2.0.3","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-Ah6Dn+ZdI+vKtDAehXGGaJ/ghH9V/pD1cGDnMwptgISaBzwK13EPtJdTjBkAGelGFdaXZgjqz2DSJ8PiEMxsHw==","shasum":"b31357973ff79a2d22ce2354b3c29d4b1782dceb","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.3.tgz","fileCount":522,"unpackedSize":1012213,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbXXWTCRA9TVsSAnZWagAA4VcP/0U9+F9FQ7/jTMXww+83\nwFB2/XQ9ctFYTbBARowM08Ks/2yJeM199F+01/p2+6l0OKB2paxs0vGytzUM\nOWwVw2qS72bUMjVodSyfROhbSkzrD8kqj7WRoh15RB5huCio0xrXweA06qWc\nHctxew+EOm6geSCTUCPOk62q9tq9Zp+8yac1eXpSCesCweWnulAaA3kNqfTg\nmEDs4U40VRWTqald0jqPo0MNSiFiNS9vA4fef+7ylE0tHa7Tgz/0zFpBOEPo\nxQ1uKSPb9fbhcLPTAD5fKuKwUQpJoVYIij6u8QiXg8uwrd56iJBu4x6Y5oHB\neDn12qiqLL6/rxuSn2GDcVb0TAsyEa2uYcjSHJ50+K77wpr+eOBkivVq9D70\nRDOQSpAnFQM5IfLuA5mcDndsum0v7mNu1f481mYJanCqIbVMkAo9aPvFi+1q\nGnfONkk6LA4yCQTvxkqa0lxdLDeDVfmmpj9GrKTkDK9uYE92J2nTdwLb/iVu\ndt1C1djQKI7js3T3sPndnNJt0lcZkodgXYuYWUIESlaoXfWlMmbGaVvoUD/L\nX3AgSv6WQBG8Olp3Jffr8V9DHKIljl7AodN+jGY3LTObsBoMFxrx82TNZ+kE\n1gGme9PntQ/41ZToVRCwvylUQGMkqHLEDorJUBtyGM+x1p1OZPp5zAJIpkY4\nISm4\r\n=n0KO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDI0meYd018cPjB8a0gNP55WU7ZpY78v2ag/7X+3n8i5wIgH+bf3NT2299Dny4EJU/stfCov+yEGdpmjfO/arK9pWQ="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.3_1532851603237_0.35748759617302484"},"_hasShrinkwrap":false},"2.0.4-dev.20180822":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.4-dev.20180822","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"95ae11d0062ccbc1ea940ad3b3c0a4db9c372434","_id":"tstl@2.0.4-dev.20180822","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-qdrY7dwCwDclQcHK7lnrUVoSKZeDu+WmcsjarFn0ay47fXpjeG6Fe/7e1IhyWhtCpbGtwuF3SBL6yKo/tcJI6g==","shasum":"30b2d4c3ff7a49594b913836e0c094a37096f612","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.4-dev.20180822.tgz","fileCount":435,"unpackedSize":884575,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfOL9CRA9TVsSAnZWagAAOWgP/3gPC+hY+yYkcZACLqx7\nCWVRuLbeAvmssyyF93c4H49z6gIBugu0xXS1YUEFJknLQLqd7pyGML9c5L0J\n9iwrOAS67TTKD1QFpe4k8jcTPPUOr2sUL5iY2ntkpRj9aqrqPm0pebHfnJHn\ntbP28hALHJjom8M7WkuIH6EcyWVbinolInvdpGuklJixoZQzY5yxG1Fx/miB\neW/EzQ/aditOUSh7XvpP2ag50+0S/eJ2KVfuzDhkoNemyElL3VYC/pfMpWi9\nPd7J0ScI3JAYIoVZ49TyxtrklFm5QMic75nydJmXbJikvR3ANYa840MQfL44\n5rOkscN60N+0BYFSMBviGDe/mHPNsgWEqYK93AHCHyAvmsDzECYTpsFZ8bzW\n2s0zeq3KOyIm1Dp2NJ4SsoKRFubM8JM2C055NfWgdFShSC5eqcp8Njo4fFhx\nhVR8DmtmNniVMk9YtOOyZ988BHQHD6ZzQCwNsh+IkrJw/OnBpl11Fz22eSg6\nnJYwbDTqQFKdh4KS0nSvv5RqzJzLGf8Phu26BslaIkwZdOQr+a0I75Rz1IBr\n1gavMujXclxbO1bFx1AAByCrLam3kh+pNjWJ/PSe2OL2XsnUkiopisP4aM58\nMlr6aFS6I0QjLYggB2i4nVVB1BpYyhbNEmniowqR8OZOqU2vDqnOUYYtPo+x\nMavW\r\n=KHou\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyT+geoBIeXx4r/uHApWhcBBHhuW5vIQrvEb/slsZIlgIgVfIfFObrl0bLQoiJTGV6vf1dk8sjwdfpgGmg6hgpefg="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.4-dev.20180822_1534911228627_0.13964505876598743"},"_hasShrinkwrap":false},"2.0.4-dev.20180823":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.4-dev.20180823","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"ed27c0a93ab8e5e5d495c74ca30033801d53b28b","_id":"tstl@2.0.4-dev.20180823","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-b+kuyIqfzufC9AZuaaLJiVpyJPNy8Jyq+KJdWKBZYt5lEP4DRUGtzN0FF6P0H3+XylVVDFvMjRkMZwPQNRnDTg==","shasum":"539805e1017ccb6789d8c0f66e92d1b43b8ac138","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.4-dev.20180823.tgz","fileCount":6,"unpackedSize":19156,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfjZICRA9TVsSAnZWagAAixoP/3F0djRwrKd0p+T9XZyc\nN6oNT85Ny7KanwFPm55iNZb4o6VKvvdaRT74ubGUjZ14hLBHVb7we0KeN/Fa\nb69oahg1okir+HY2TssjDluFC1X+ppyLSX4NCDyzykYHicppnnAoUvPDI7cW\nAvyjIXqUox2ntyqP1iKWFnW+4a5ZSh9cjxADN4JH1Sz5l0RGb0oTI7dCXWQz\naqRQk89pz0VIQQZ7bpGrby3I3MqECi5AHaILS275+c5nraYqeaUbIHUG0HgX\n8vXbdDCtZNIvLyvUPoAopWcYFP0/RjCLLJOAFqoXg8SZY1ayt+BGQQJYPV87\ntEyil0wGukFlZGlY2ZU1otNXT1TKWTWEyesD3TfGS9ggW9B5FIZDZpgMWsE9\nYA3fjXu6kHNesKxusT0fUtI3PuUzczivTkHXXOOXCW/r1KEz7w1K0z339F+T\nq1XVxat524fmZPshnR7WUtS9S4Rj91QRYkQri8inlCcqdB8SbT42HBeBITK4\nsBSlD/ce8CaNmgknEkuQw1LqHVZcrvs+GeT3nru5GsmBMrjgVHb8HOc3ImeJ\nrB//SdjNj/gLeRBtz8Cydotr3eAqwbSr+8Hg7SKPVf6aAQ14snUVbwr6y6H/\nhBQuQAkCyCQfuzq/QHWVmkZVdl6rbQFc5IL6X2IybdSdQcwafArFVdATRYag\nZPxd\r\n=53/d\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF9DN0S4lUtLJyq5XjJuVR25fdIpDkKfitPQ8Or4Iym0AiA7lIELk02Z4MMbNAP9GI3QCV4tXDxFki839mmlY5UJ1Q=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.4-dev.20180823_1534998087417_0.38879464729276747"},"_hasShrinkwrap":false},"2.0.4-dev.20180823-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.4-dev.20180823-2","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"ed27c0a93ab8e5e5d495c74ca30033801d53b28b","_id":"tstl@2.0.4-dev.20180823-2","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-HOACLww47qtOOGhEWxtLgLIEOdR0CChVJHIV8P5vSy+gAMmk/P1UwpUynO8cJe7ZlLGLHc6fCm5g7FOxHXFqbw==","shasum":"7bd2ad430eaad49d824c960681f9e66e9e135053","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.4-dev.20180823-2.tgz","fileCount":435,"unpackedSize":884585,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfja1CRA9TVsSAnZWagAAojkP/RZwaneuPv4JxvFfKiMb\narYFC2/g2Bj9SAjkcPcUweogWXoIYfgzvHJYHHBYIENTFkGNoioo39Syxx4U\n3YbOD6JDB039ri8WUholzTbW4dWXkKRXi3xWE9DpzLiDUE4wbRVBnqWieJKt\nK9cbfCcP/bmcovHkqxCP52bD8SsXMmUCYpA96Qw2C9Vr24HdLrD48LJXkAKD\nTTOMmGFFlVO9mRCdO5yqY4wGMJc2oNjkGiQQz3HXJhCm2PunRtFte2ESTknh\nQgSkRXuxzG4HLXu75/NxfVgv7POFzk7E6bRjEERFNDAfIF6TwIfuB5jfw22C\nLUhH24jD1kOgXX45/msePNVcEZc/e9+t6kkh6OZwaA3doffvoqSHJOGl94im\nz4w+HS6vC0yy54mPOh9/IdSQzoCWzpLwVzaQ1oJzMMfBdmomhick3rFT20G4\nd10o38jM5q8y7rAaTNN4XN0ZOhR34tTpTgfcLmgrBYRpJbXVp6MVKXcCjNgK\n8JKm1JnypF2hZSJka5WvF776lxOlvI8Lb3eX9F4zb35s2TyOMhLP5PC/032h\n8Of40t7XN+Rb2Ajdjp3lFHTXpgP3RkbAsOscLt7wtBLchFrS9bfmoMclHK/o\ntYogssf3T0R5brbIfgaNRzJcA/Qbym5JOx00q2rqFICZxlqmM8OQHwN4wey6\nT6Lk\r\n=My+Z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkk6ssfNWrgPVPLZYBrKIsiPESOUCc4Hd7uysug5Ot7wIgDIutSeUTl3F7gsIqSk9syRlMfeRhkqo1Dk+kb42Qmpk="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.4-dev.20180823-2_1534998196373_0.2632294866810232"},"_hasShrinkwrap":false},"2.1.0-dev.20180824":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20180824","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"543f72ad12fb66ede6fe047967e4b705fddca37f","_id":"tstl@2.1.0-dev.20180824","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-tPl3qis6jKkZR4BCMJeJRMKdB6Ok+SdPP6piBZOzO8X7hPAEM3PIV9SMsL+6gl467h1G1mOosfc7trMXu1GqnQ==","shasum":"81debe515536ac97e62363777c7deec201dfb85f","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20180824.tgz","fileCount":450,"unpackedSize":898441,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbf7LjCRA9TVsSAnZWagAA8SwP/1dHOJ/e0XRj9sS5Zj8C\nrLnJM53JlMIO7O8e7q3FdOAHMu+c+gBp2MyXlVbLht9UCvRwYVuIYFBDUMtg\nJ3LW9LH7bLW5UXmSY710aXcWehUfYJFKCsXmC55+UTlBolJWeEdVb4+DMVI5\n+Uq0k8yZg82BYc/tLzl/bWjhD7Gty4LrGnVNUIFqLtEDAXUKITtXJnuRyQN5\nF7ixked0mXg7MD5Z+Htz1s4sQPBDCeZou2d34gwelBMy4psp8GecT5isdZ+v\ntEFR00SYw/x+/FmNCCOaHscWWODH4WPCvvG4RJX8/gEDB7EsqEWBb9m9G/kV\n+03q+OhTSBIwd1N7mQV6AxlQNF6kJv2xT/mhpc9JlNRPXZXGXAiPe0glAzun\nQ7FNp9egjuqhxIAf7AJVmTFRTPURt2s8JDeK0rjOqfss5UblLbjcStp4sKpJ\n2SUnA7VGK4guVYEwR2oM2eyJ+a3b/GckkWAYtnJ6i4zV43LfbvminI1Nudmh\nKUyIaMIp7EHzlNRupkuCrjHHwwY3a/v0qkmoTVsKl7qlIju3UkmHEfdw4y+w\nrj+IY3kZ7OXcCzuN5y5/mfM8xqZrTV5h3IcJK+RXnEww4dVd5I2lvASrBOt1\nIpI61NjafRANSZ17zEDp1RkIipaLfqKcNit/OjMnUYHvh61EoszoJgs7mr2j\nzdiS\r\n=i+XC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCYgQUftCQF25TVPHpVGFbzLjZp380YBL9PXv6+/+PQDAIgLltFz/EYnX3rlVRQIidwviALB4JkwYUdp+ORfLX0990="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20180824_1535095522884_0.2991909297357378"},"_hasShrinkwrap":false},"2.1.0-dev.20180824-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20180824-2","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"ecef3f691c49f78560a0bbcb3b18c58e4f169886","_id":"tstl@2.1.0-dev.20180824-2","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-SyBP22O4hMbghNVjWU9irH/hBGJ62aGykDtI2w5xbp4BazSBilBPQOhsBj5nGHNwYc3OmnOXE++Gtdk3eoNaRw==","shasum":"2d9a43eca3815fc2f629f7a259fdee4f07b203a6","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20180824-2.tgz","fileCount":450,"unpackedSize":898635,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbf7eVCRA9TVsSAnZWagAAI/4P/RDQjQq6XUXjh+/Zl2to\nPbgn+W0tFage/QX92CiU+vNGIcuYqX4951hzFHeTqKcuDmquFVE2UGHOeFim\nuGVvLQSaBV/9JGObudMOvlepecrw5Cxkj9L98ZrQ5OHHuOIu5KJ1zb+yAHJ4\n/9G+qaankENM/+wIZaZszGIyYf86tNetSAUjBfGHQZ18I/VPZaVo4II6U6tB\nYdytFxJgcIl9OBItK1cVSjwC6PODa3v5qmBaEdUzUOkk82+ACfqxrS9asNtY\n3mx4NstSMA561x8bSswzcPqt8dpWiumwPBsdrtLyHC0v9pw12ipS0BLlwAmk\nNq8Q902yvMHIlrD0QGS6L7YuiWXdfieaOvbON3CFhgvxKFkExPDzxHAvq36X\nx6m9tPA0dCEK5hfXh9paYiIpCJji5BgmNPzgv5uCiN78QFbfcpgkRL6nQxlS\nppJ3LJlvkC7cSrjZ04iI2s4DChO0WkfXns5aQ/L3LP603ydmMFaZZCIJsT/H\n7nPJ1MsFNrfaASK75wPNQ9UkVXpIs0Z3s/lbq3272BOSKHjrpo23cwUlJ7fv\nxu/DQGn8OLFcsc7TvaIHYkBJhD70ZYuVlND3MSmLVIg+6MwYi2/ghrrddo7h\nZInisRs6Ad2tYUw/K7LOHFccgtyYhuUY3y6tOLcN/caUSV9PdEHMhRJGWhCI\nSTs0\r\n=ur+r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnOxevjc1AviWbn4BKfC6SftvC3mYcyR2vA3vkodA8WwIhAPRgepLV75n1GaQTeehoHHiKgDKspnb07+CbNUeyMUdR"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20180824-2_1535096725352_0.43115105622385386"},"_hasShrinkwrap":false},"2.1.0-dev.20180824-3":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20180824-3","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node tests/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithms/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithms/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithms/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithms/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithms/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithms/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithms/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithms/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"a62cbae35e3da56acd3acb648cb324a30b414643","_id":"tstl@2.1.0-dev.20180824-3","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-Rrg8H5ZGk1NMYZTwq6exkMtiTCXqUrIZo/gikqhRpsOYFhyoFv0xUkzsqgj4iM+ZfP1C/a2ZY+uH+IbjoBoITw==","shasum":"1d3ea8149f5c4f49df376987e5de2c1c7ceea085","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20180824-3.tgz","fileCount":450,"unpackedSize":898973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbf7hDCRA9TVsSAnZWagAAvooP/jRco5jwYc7PF/hVUxDW\nFx8g5v3/XlzxTFUGj4aDPc3mgI2t8gm5Nt1390bQGaF3+ZEYSS5vlD9sZkKM\nHZd4IXo6AjCkw4mc0trPI1oGXz7Xj8p3RTFH3ML+IdBfMg6oJQSBe7wN6/55\nphXDfb3vlFqnnf2TS12wm6a7ezcGlNywbemzSOQb5riVUGYRcw2OQvB79WL0\naSuZNCgvfwcSwsLaBmWnGBW6hlypLyDsV/9acCrxKWxftgFdErQsfGnh1fEO\nmUYpBzN971SoU5nz6r9BdUAlzKw+R7B2UWKig3h5+kbo7qaWrK7HfJvRYEiV\nF5JKTgSyC8YUptHwLS26CYi8CxFbMkbTjlKurOhqGMKTC15Evn5jCvXjmhcT\nq8sGJwlEQSlynI8qkT6CtePc0uacdT++d2IMnJVbH2p/9ynZ915rPQwONrlD\nkJyIZXbo0VhWLYr3gIr1YGMs9ZQ3EWEWy8AxoSwwQWO8nk8GGu/pCt/Bsn41\nf8SLW9AxwqNutjQdCaYAD2nzcTKfhHeSaeQ58E+oy8lpUgLzn81nLKqOOJU8\n/6FO0ky+JEyt5/30mTxMQKO1cM/bt0AtkWlyHuXaMdJmzY4QzS/P8gxZRciK\nEKLYZ6cGvuYuAhSfvEv0VXOQop9CLsoaw8OXOI2Xi/Aoyfr4BRQgCyMsMOXD\nWsCi\r\n=4xm3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAVSYwzwIWQGZYUIo3G0xLGWyKT2eyG6ahw8swAfpIS9AiEAiB0GUups1RwOdCstp1AeBVR71yQQg1bpl4XM/CrkHGg="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20180824-3_1535096899135_0.7582211442817604"},"_hasShrinkwrap":false},"2.1.0-dev.20180826":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20180826","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithm/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithm/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithm/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithm/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithm/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithm/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECOL](https://github.com/samchon/ecol)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","gitHead":"a62cbae35e3da56acd3acb648cb324a30b414643","_id":"tstl@2.1.0-dev.20180826","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-Dr//yPYS4ADaHXcOzW7R/abHb0F8BbfCYHHFRkWQFxiFTFJQxBq7UOJ4DTK0E6Ed5f8H0d+V8uIgyaKDGzsBcg==","shasum":"5dac2d1a8e167231826dc114f5fd491dca5c4e33","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20180826.tgz","fileCount":537,"unpackedSize":1027008,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbgleaCRA9TVsSAnZWagAADn8P/i0S5RltY8nEwD11MQNo\njCv9DZ36Ho4jyGHuL0qwehNpuTPpOx9mcpmeNi90iAq2dVsD5drlbzB/QnhH\nExdt/zF30godXqwczaZP0UqS7vtbOeIBpPBqxa+3lkkdvCv4/wl/qlQxPlKJ\nf3iITVAJXqlCF9k7XGQB4ezNtSR0wDFuu/GnOmix35cecjXkTkKGEst6Bfi8\nj6KU3S6U9W2oLyNh9ZMO8camHitvOtnSjSO70l276vczuGZ8Zmqn7lkZBLHK\nKH7wDV49CU7XSnpSiLHuXzK0GA+TWInz1YVIfFWw2T9BVL0IpHa7/0/7boBA\nTiZh1Kz9Xn39DbYZjGaI1h5HkIZbBPttRMWJD/qQPt7GPJwmgFYLTUoVYFgu\nWk0eMamf4bh4EYvX5zoTgXJEdg5gDiU7VvC+mFbzaGBWIj4I5CymnpiODXLL\nmMyA+swx93cEYgD7+6Kx28ppiN/jw9MrCnRbXg8ZtXmBUnkZBmlirjqn2vWY\n+FgG4ui0/eY9HrN1Yx+NPku+NBwfZfwHdiu5X1DO6B2KARleR98tG+p5e9TI\n3Fg41aLJo+hjxSjou5uhXNrMj6GYeWZhS5hPNI6nC6m9IvmBuwqzu5SdUru6\nnnxPu99VX4xDFen/m7WFLql2UPn81gHGKrEVmuYGOKfZxutWNg7AG79Q0YOC\nBQuq\r\n=MMue\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAptPGvf0oj5iebCd7hyJ6uvi1BOQ4oDGLz1qxhnofFqAiEAjkZjp/SL4EXxiCfALdxjjNcyq0nnLW/sOfYN78c9wb8="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20180826_1535268761759_0.4345667313399504"},"_hasShrinkwrap":false},"2.1.0-dev.20180826-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20180826-2","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithm/modifiers.ts)\r\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithm/partition.ts)\r\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithm/sorting.ts)\r\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithm/binary_search.ts)\r\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithm/union_set.ts)\r\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithm/heap.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECOL](https://github.com/samchon/ecol)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","gitHead":"81ac59248423730a973aa667666aaf2da9f13f3e","_id":"tstl@2.1.0-dev.20180826-2","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-buaRoafQrcM58LA+YeLqKJ38PrJ0q3Cz/gYxRDRpu4zU1PcRUIlWIFHz8uZmVQuzZJCqpcivi3kUUfhsA5gjwg==","shasum":"1e38dae184e9a090980a653f328f7f833a4da5b9","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20180826-2.tgz","fileCount":450,"unpackedSize":912139,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbgqBkCRA9TVsSAnZWagAAPVgP/iAkxB2J2tgo9rgLy/Ii\nvHZ0xtwDt4HmjIutCCMaQeicEAsZKc4jnZHAhkwxWIXJdBEn7/Mq4Rn3sbck\nyN4Af2/nBadf3BxFoYq29P+XskwZNjbMsZR4LI48Qn/ryays/OwRAb2DKiW/\nYIqZ0B44uqYC1bvnHHFTP0cfGHobE/C4JxtgNE2P5ItCp3HEE6rMf0M0l4lD\npx0pc7FP+CC2qPMRF0YpSDNS3wEdO4TSDOZTSJlVnh86tuhEkYCd26bWv0Yl\nsZ5lOGAy5Q49sHUfqmSzzIM5/J/g59k+XgtOeZC+iBANaA0ci1hBHWs7n4iW\nBWV7Fdn/kJT+DpxUCv0rvriNrfKPB5XLu+uTXy5azUyDGSpPtG5DEAjLqVO4\nJ8NPuSdoSA5Srwl/v3DAgotGAaKtGpv5VBfz05/+aZ5qX3IdBr0rfFJYJkF/\nIYt6eXsCO6NbKlRW33+yOAagdYc+OeAIXfZrDcpMwgPNFLHC6IwzY5mTCO9E\nb1w7g4wiXdlSjJNt56AIYdPVg/Egg8/fJ5nT0ZAHVKJk5f2KE9RGbrQgOzT5\nWA1uMxTPl9KjBUe8wj5xy+zhGpsPQdJbneGCrKGlzErP8Qcb6GoiYuWkr5Bv\nQjTv/KJg37EC5RXO7hett5U18Cqm4/RDAFMe82SDS43x6svJ37dXbCbeC7eY\nkans\r\n=NlJl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyHtfnecW2TjeIOoLjQufvbgpsDaZTJibTa70X41cKuAIgdoFOT5OOF2UUXTEvQFFwV02IcW0m6HLYyumTMU0RKP0="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20180826-2_1535287396106_0.23987891973436515"},"_hasShrinkwrap":false},"2.1.0-dev.20180827":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20180827","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithm/modifiers.ts)\n    - [partition](https://github.com/samchon/tstl/tree/master/src/std/algorithm/partition.ts)\n    - [sorting](https://github.com/samchon/tstl/tree/master/src/std/algorithm/sorting.ts)\n    - [binary search](https://github.com/samchon/tstl/tree/master/src/std/algorithm/binary_search.ts)\n    - [union set](https://github.com/samchon/tstl/tree/master/src/std/algorithm/union_set.ts)\n    - [heap](https://github.com/samchon/tstl/tree/master/src/std/algorithm/heap.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experiments) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experiments.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap<number, string>();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"3600514b6ac0e7eb6cccfbfe7f530daceb965fa3","_id":"tstl@2.1.0-dev.20180827","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-kGNbmyYrR/rJSD1Eqxpl8hlYsJGKxPOPFC8esUl14e84Yy2e9WEkEsIdfADcOs1yGKR5paSGXMQT1vj43cZirQ==","shasum":"a6d781c79c3ab6221b185017065d4447b867560d","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20180827.tgz","fileCount":450,"unpackedSize":898264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbg0TzCRA9TVsSAnZWagAAN04P/jZxKXhFJyfWUkbXIUky\n6DQG1Drw37Z9yBh7Ibk6WaEeFdHlRzXJo3urTWB1VZCLnLv0HjgWlJgD5UKh\nJX8cxYfH/I1BZOFzWJf1e4bNfEj8M0ZyIMgX+YWiYVC92qwp1LZAmu/4sz8/\nRRGoVhzhz1EwZ/tnYMZelSTOG38OlSRCwVF0aSUnTM/t7c4VIOyTd4BOZsvE\nFGGZ1VGENjWUb8o1pKKZ/HQQNCWEp8LRF7H77C4anYLrPUMlxEeTExVoZ/Zj\n0p2CLbTqOaW6JLXMLsHzKDBCvD8kzM5kW8/EpbkHhiyIy8OvG+GrajGwP8Zc\nX4ZXtIsaYfDe8cvMNwoc7v50KDSTNIbvxXdg50xiNZdejwEII7Z9zwCdsjZt\n6g2y947bVTpstUSX/MUDEkvV4+IOtGmYrNJ/JzXyh1bzyNTNLMdZb4HAw25y\ne9OaocDRYZwwnCextgpbG4VyzwlJCKFjBYNAsjY4wkHlZOkiQ26cKcpoxpsx\na+b3HEWaW7TbPPQmFEfDEXcQnTzgiYpfe++QyuoWEhxg03Yc7VIylk14I2NA\ng3ghIObOcrw+0ZX1rJ2RLN7cHCKhX/I8EcFhQ5m3+Wg29rHL5SQm6ge7+lHo\nUu4MF2jpa9LIMqx4nAj8xriXxVnqYJhEZQE1s6c+o4Q2hac1xJjDUYm2x0fM\nW9oL\r\n=Tuwy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHrUTVziCNoxYezYOljNqGPuEle13d+2V/ubD2/FVzROAiEAh0dVvixOBkwlQtWwUrC66+ofyaHVh4UVCQZptPe2iYk="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20180827_1535329522414_0.9544721200827653"},"_hasShrinkwrap":false},"2.0.4-dev.20180827":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.4-dev.20180827","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/tree/master/src/std/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/tree/master/src/std/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/tree/master/src/std/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/tree/master/src/std/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/tree/master/src/std/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"8a97d455227631808f829370bc15a7dd0fc8462a","_id":"tstl@2.0.4-dev.20180827","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-tlwORbLjJlj/lND8CWh2PtOoIGFhLkBaAMSWWdj9ITNySdJ7/yZgPBJTd9bRaZMHM2fGvY7BO6EKidi8lKDsfQ==","shasum":"6b70dd62aa2d086e775a69359aad2c4128aa56ff","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.4-dev.20180827.tgz","fileCount":441,"unpackedSize":886342,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbhKD8CRA9TVsSAnZWagAAgNoP/iqvYUaagA5tc1P7M/nP\nvSTZmcXBgEqydUqzz5JPwX8CHX8fBUIldvOCPVvTCOjJNKI6xpnZeYTzPPor\n6GjhFDl3VeF6oIeOKjz453TKBX0M6RkMnMgiip3NRhMYtDNJz57kBoXj0KA3\nKCEEx9Dmy5W6lzjTyZjh3d7s68maNOayI07wrDal6DLhhjBwk4zeDBRKcabe\nioo/qxTlzoD8+nID4O9d0q26dlmttsLQgNn/8vsffNtPI6IYITt51oTUsCRU\nmkCItOG+/5+1IyjjhaE06Si4OIdwozbG29N0+zZT51A/fu0/y7ewJjSQTMXx\nMP1cm53yVZHPh5MG6+wPwueSIaJVbKLRY/CZLp1B8cqaXXHCzWIDXciVC+F1\n0AtNKSVb1Q7g3/0PyHw1Pd83HDtxw4kMxt4VKZiES+8bciAUosym34EIyGH9\ni8rLHPZvcHfZ1cwhj57A6yIcHJiv6K2DuQwAhfjyLSsYyvVDvsIRp2RyTfK/\ntcUu4M5v+vgz2K0IIBOrOzj2P8Jz9sieFiBHVmwbEMy8vk9PBruN52/+3SXQ\n5PrVmC7CMPd3eIcef6H6S6G1fIJus9zXXXJI217aa4hp1aVdRLn7q7SSbu+E\nCEJUhNDoxTVn+EYGrdq3TcKuM9rgzuqFJyVXJCb61ryF0TtL7iCBsi4zChwg\nxoy5\r\n=Zbvk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICi+iP+m1lC7qOVbidFKW76y1Qvu6MFmA5htomyZH7uVAiBHvWYHhiilz5bydF8xv2f+E0XgISsT64vtKyMqUsFhnQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.4-dev.20180827_1535418620326_0.22867120876678526"},"_hasShrinkwrap":false},"2.0.4":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.4","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"8a97d455227631808f829370bc15a7dd0fc8462a","_id":"tstl@2.0.4","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-smAUFFIlLdmDtDn4hReOAfoRocTplxm1r9ldYtiEXdmkudSYfedmMc2kPAdAgz0cHDczZy4tPZx1fZD/BH6sLQ==","shasum":"0129faddf7e84e41026e257ed3b4dafd3b2bb952","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.4.tgz","fileCount":441,"unpackedSize":886403,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbhMWfCRA9TVsSAnZWagAAj+QP/253omLdcCsePqKm6PIO\npt9Z3CG5W4HdDGAtr6Sysa7wGQPkB1BXt9wCEptsjw5MLq/qc76zVyeYqJNw\n12dolMHqGnm2JcB9q0Jbw6ckt6V2P8JmMZRMQsBWVJB/RD/CzLgq023UDMVx\nCH7ZhJMageYLdGfBxJb2451agV/Vbz9tZcdYIq0skyih5iwd+P0Ws+SgCuox\ngasbhkqC42L/ZfPC3wj1/hUhLlm03cBoKdDQRtdIhL5KuNIySm9rY0biK+Pz\nwhIAmG+FZl+vijCm3TVxDSqsi6HCWiauTn2juIe1nPL0DvT6H14DHH+nhtw8\nqz25g4pHDf69BlSjjmtKtRNB7VvjueHw27XpF1b9AFhSY2n0k/+XP2dt3oqc\nyfd3vpyUsUb4bmPbbP9jRTpyfbnFoaIaiNFJdHZdlCbYYQALxSrMlqmdpt7U\n9RIkbNCtf7TkDaG6QNsIRJ8DJViZVdFVWu0hJUALOCZjC6xxl/KAITRADFcl\noGT0K38/HRN0QnaZw52OoabBLf1zBzVDzePx0Q3UZBvjgcjC477iTm6XmXck\nV0vprmYKQh/G5yT46DklgXHc7oKlQQ7YKs4mdq9LsrXWUnroV2l6BMRdlVVX\n9z5ak+4wtJkO92EWXQadH5cDwgITQkqMH9aO3XtcnODnZ4e2qYNrnzyeoFfO\nWYP6\r\n=a/b0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBUUBc15bGM3Ruw6n49DNvn1YnwSjWFgY8wkWAvE0E6oAiBs+eev9udMi8mP1z/bv7gWZGj0qexz6PS64IjWCi/C0w=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.4_1535427998292_0.8399105927634809"},"_hasShrinkwrap":false},"2.1.0-dev.20180828":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20180828","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/std/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/std/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/std/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/std/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/std/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/std/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/std/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/std/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"811ad716d2b0990600a8b6ed99b74be03073c03f","_id":"tstl@2.1.0-dev.20180828","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-43UAU8ZUcXj3UrSQgcgfKqpnd+GQWtI/mIT5KpIXPSJgBoMyXk2XmI9HNjNxp9DhJcHPy7hdWxIFv0Aqpdw0DQ==","shasum":"ee29eddec0f520aaa9f5b487095890d0a6ead051","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20180828.tgz","fileCount":453,"unpackedSize":900094,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbhOHICRA9TVsSAnZWagAASv0P/3VRKuKGGBq/zBUWMORm\nxt1el+tFOZCK4m81fbkgoJ3VcbLDEmVGdmhNJkWb0HpjA03tQB6ulgsnugfh\n1XxgQuPD2LVfwHQ3tou5rMcjInUHiH9fQpnVT76OW//hjR0JY1F6SD2jvGh+\nmpWryelACU25k+i38IZoezqrpanUg654zaqWNJUZrrtTrVx6EK572u9WvJGV\niCWZQmuIDHUSKrtLaHcUsjeBrXl7dRTRYnXs3JKBR3e8PBU+Kh5PcHUYsY3s\nTlOlQAo68Yg0P4vw/CzOLZm+bit2Zi53AZ1S1IFrK201fVulH2MG8qmR3qLQ\n/6kwf1QE4lRntN35FaEtRJB3at+98OoaU8FGcKGnhYSIORQ03h4BNRqIUIZQ\nO3YIsQi7FE1d+y75/wiSqztsKtkyN/seyHl9UCT/SWGW52sIVNOi2oxhR8X1\nOxA/oV5PiTIwz6/p5Ni+6G5csjFQr+HF0XvgswMA/5vsBe9dEukXck9GpHPy\nsfiGCU8Tz76Sy6vDQEiNCm77Iyy6brACUsR/tIz3hl4WcBKiId61ithRzb+G\nMp5VkyHOBy6nL4vf/7htRSUkgiNWc6BUfxcO6EUlyEqZDshPrkUA9BYJbSJZ\nhlzIAKCD9414HCxRds5A9qysbQ6VVZ10HxfYJcxzmgStUGs8HT64A3lrdwyG\n9nn6\r\n=PQym\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAZNGs6I3zMCPJeZenhjSCirvIsPlnqbY0fM6p1VLRaQAiB4EGBdtrH3AjbN7raUnkZ7IWaEfwE+S3vZ4Wemrq7QzA=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20180828_1535435207662_0.5050942177094764"},"_hasShrinkwrap":false},"2.0.5-dev.20180829":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.5-dev.20180829","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/tree/master/src/std/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/tree/master/src/std/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/tree/master/src/std/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/tree/master/src/std/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/tree/master/src/std/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/tree/master/src/std/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/tree/master/src/std/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/tree/master/src/std/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/tree/master/src/std/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"46988d1dfd64c633a5550625d623858ec260fe2d","_id":"tstl@2.0.5-dev.20180829","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-9lIl3+MS+Z/9vi8HErnORMAPiHqal/m9YfpKTth4M7kKtU51ga/Mrhbx2tEzm31JOx7/D3v5NCoqU01NdY8VEA==","shasum":"579336e7e6dc555b4a432e019454bc97fa55fb8d","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.5-dev.20180829.tgz","fileCount":441,"unpackedSize":870474,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbhe6WCRA9TVsSAnZWagAAjxoP/14JJkpSaNzwmOgAX1tD\n6RNV7oJnnDM+vhnn5sUYQImY0YpFTeC5uiQNe+jcVwIg7R+mPu8nh/6Y/PSK\nx0TE4543ueVzgo8Fiyh09nYu7iya/+c4KkjTOdY1ZNXJ/piKKuGhopYcUwdL\nyH4o1otFFh1kmNW0jlGuPfNjEGnJ2vVK7tIZaukIlGAYqqrRrf3eH3Ny6UIw\nfOxDgldTQwu1UyIu6azPT5eKnV84TcFf/ju4XulqCd4uWgPXvVhTCy8NeD97\nfrr7/O0XbwHG/Qm6dbnLty7ZmgDo0InpN581KLQJryV+4XhLZvgJatWiXlzc\nfCLV7BvHt4l7lROd8SpYRsTmfHZN4Ily7pGxjDHOYVMlL/JEWBQu1IH5/uNV\nijccl69A2qo1X21CnOMMs3CPj/479RdRVTV4oy5ubS8pbK7Ixq+B96yt+72z\noHLnVO1qTMTp536pGgUzxG/u5W/o56Pn79IhueRbGp+fa77d2oSPLQfUqFg+\n6mjOSIZfuU09BNVwVLqz4ChtAqnDM14YxH5xbN2p42L1qWbJaT9nHcLj+w89\nW1aAqtobbyT3LeE0x3jxzwsY4ldQd7pEJqdmpzF3RZfJh7Bo7E2s8oJONAYl\ndX4n5CnSRgQuZPybZM6L1SkrvcfEcHv7EnDLyPxjXM1eE9Ro22qkh4imxVSC\nxhQi\r\n=Ijqv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPNySXv5E+m5v7J/inuq0yBY7hsCQklOoSfT/bS7+QqQIgTVesgPYMV9ta4xGtC43yhLfilGBt/0PRlMbjG9XR8sQ="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.5-dev.20180829_1535504021728_0.4554369870539896"},"_hasShrinkwrap":false},"2.0.5-dev.20180830":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.5-dev.20180830","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"a6f0e9f2b6845fd88bce8dd021ced6284577315f","_id":"tstl@2.0.5-dev.20180830","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-uKNLV5HJYrtQlAbEKGYLtVamaGStqdYjF/Hiov9zBFrtv0K48a76hRzdGCqR0wmm2tEjL+IvIJMfMvVUZUTyrg==","shasum":"101131478442d4d28adfbf7973ea44bd95c8b9e8","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.5-dev.20180830.tgz","fileCount":441,"unpackedSize":870183,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbh1jaCRA9TVsSAnZWagAA1pkP/ilxZIj/kBifZdHmYx9K\nw5dP9Fs7ITL/npxcA4Zit2VAiZWY/C86msCtq0KMFWolSueC+i2GbHuEX5jB\nd+Vzj7hQ9aBI7K65WM0BKMNP2Le7ncyNIwV68NnSpF4E1+ot0m6MZYL8otUi\nXHn/xHWfZF+XsXIgRb/xEfH/Q6XR5vXx46Tz7vPCNt4fr62XuUySsLrWDXll\nSYVGVQ9QOBzdQKI/GTB1HEp68mGDR8eeqFzBPpZz//Fis3KqTmWA3u+Z1Akw\nSuFeP5ipR5UYomFShQnZCPhWihml0Z/mhp+xfYlvLYGhY76tdKi7xE2rvDDE\nrFD7MlBxRR7wSYItmA1shmzdRJiPUGR6XvuV+QZpkyD8ke7AFSRPlzQRjiwr\nI9jeGCMEH6fnv2GzklYVrT7bgK5WKKxx9rwFhUVznrGKUYfRRz+6DerNOuvZ\nBigG6pJ0BPhkwyUtRHBOtLl+8CEGTPPpL9OEq4IrAfAP4a9PIfAfPutxexSk\nq5UFJKA6lm+aMTPMZFWzPu7bXdbMJFDFFt/0djevIgMSGeHXITetNOngrnVt\n8n4QIuF9p8YquF2Tf1ELoSPK/QJuuWBDTw03swphLAK5Ao5S0kqm4lxd7Zas\np2w1RD9VcVNM4stNV8s0UhBIHrTLLzGYZ0hFHV41LEQRLn4CZ4knQVedbjMd\no0f5\r\n=7ElV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhdAzNUTBR48yvplyl2URTkBlrQNExApWXVtYUgeNRlwIgcd1wPr0SoAI6VjElrNUYJ/8dHYU3ewURnyoWgxFLPi0="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.5-dev.20180830_1535596761728_0.8907815257709473"},"_hasShrinkwrap":false},"2.1.0-dev.20180831":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20180831","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"228eab49fac9aeb8c6bf81e0a28cf713516248a4","_id":"tstl@2.1.0-dev.20180831","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-6jAMskeM6CSLbAxMWeVymS4r98KVngLEdfV2qKHGFcTzJyNsIYK9Z71oNJW3p3eJGhBNwDZQwj8AoM4bCYfrDQ==","shasum":"408bb4a53e69a788546eb59978b5bc72b92b60da","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20180831.tgz","fileCount":6,"unpackedSize":18855,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbiKjJCRA9TVsSAnZWagAAcbMP/i9jmsimMHI4PgzQF72o\n7ys9zHZGtt74E5z5VncR1yhhvY04rW+RoU9FIWpYAlEhGb/9jP0NM8hW2dAE\nR38+YyXJOB56UTjW5M0FkKmULyScqs4L66WQwmtkma9CXdDREzrYWoO7pdzF\nD/RvthZ2wK2ZhRyPaG5tVdkyb3CuVXWpftSJdVhL7SRo2Sg2qoTXuHTcb02L\ngQ+AtWuO/GhZZ9MGK3DoDs3aNeFeryUBmGxCkMlU/XQzpfR/Qn4/qDIUvKRR\nBYqa8h3n9Sm20DYQNfzWio0Ca9ll4lNN8EN63E04w30RGxkJbRlVe6hvVB9Z\nawECl+tJhKY/4xLPwITrrVdLOcen2yQIiwrwt6fJk65/olU8nDzhHU2Zj3Jt\nuCVBT8FaGyZPKYXYRJg8q53vowRBrImGa5CtPudIpAUbPVbS6xJ4hagTzS9w\ncm8oYArJZM1kQj9rsNTSrqALUJPKBe2h8SMYXJ8CvmiuBusnxldgkYS9LJj9\n1wQgdkrXOusYfoJv6vrlOJn1criOEQWlGZ/2tLGsc2z3NV4/XEvMGuUtmcw4\nH5/UKC130JS+c4LLRvuBmv3OjIBgboPoT+CQInsbP1pI3bByx8ygaxQsGJVI\nO13E0emysDi7fFQRQ5as5id6DqQNb9HUpoprCgu3XZ+Z1FTXDf8SE6quI3e3\nATip\r\n=mB3e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHwnFz3LF9aT6pmWUn/oYGFS2w5i90hfAn6v3i1Dl0Z6AiA+Mam9X7XCrh/dG4q28olRVvrFOQrrIsrxPPAVgh0YaA=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20180831_1535682760326_0.11904370593810798"},"_hasShrinkwrap":false},"2.0.5-dev.20180903":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.5-dev.20180903","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"a6f0e9f2b6845fd88bce8dd021ced6284577315f","_id":"tstl@2.0.5-dev.20180903","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-EAxZxvvrLmkHmlVRrh9sspDZmGvZy+gC48Zi1IYXfHVaJvENVgnXPw4Ye7gcGrQRVwhvahl9f3FHmAASkBq0bA==","shasum":"10eeefbcdc547504bd8048027599639f87658820","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.5-dev.20180903.tgz","fileCount":441,"unpackedSize":869123,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbjL7TCRA9TVsSAnZWagAAZk0P/1HwHcIMbbq1qkfLFZXe\nsieRIvOu+zHMxikU/LXcnIf5XbGuHhu8f5NvhTe9YtAb8jtF8Ptsv0vF/nHM\nQTHMW/E6YE6MDbhNXt+0Z4yzwB+JX3MhvBqtH9JY1pZ/W2rcuoznmjI0/0Ux\nEhejwlj8RoEEZilK2klqfxdLgppcKCt8Ku6x8HWFnKzmEct5+BAIm6QHzBQB\nbSdQcmBAcZ5hlABhVnH1s3sdwvB28oh9jpWXy5m2z0xm7YvXt3AbgsD9Rc+4\nNCv8qvKZH4Go5Aax0rkadnzdBDDdK0KCeKauYSvRAEft5dq8xVJo7RPinnSR\nni5vG9VolA6bv4xZAdNPzV4HbjmsRBLF04LLpc8voITRMdxa069pN4JTsj3J\nHMnR2yxYr2V+rMKriN7c6foF7lHZGF5WM8GwC6k3N5JVVrINeVW3X1VjQRrI\nRzuZXzQfGLfKrdB8G5+OM1OooEh52FIdK+OnMYcMD8R0+DD2q1FkKcA1PUsV\n01cH8tZTxGYsjAjtKQOOs5AXZIWw/Sha1Lk2dY5LkLHuVyk9sfglPEi3Blhg\n2QWxNAauwKlkZLRPBbx1ifE8yUWEJfo1ENxByjHPqGpxWnjXbKJ1yunPhixa\nzVUyAWzaA49J7ewxgm6KTokjGjQegsHBjnCQ7pDrtvg46T7/IoGtVV5/r4my\n+xep\r\n=0caX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAWftWlaWWQA9iGvQ/qYd4n+x0WpGNg5A6zpsvQbE+0uAiBvJi1azspz2/JfwDJLMg/rXvax6oWAGRZoXBU0kSzjIQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.5-dev.20180903_1535950546701_0.24733655719627223"},"_hasShrinkwrap":false},"2.0.5-dev.20180908":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.5-dev.20180908","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"43a547bf854493025da1e4f92f8d6d7739e5183d","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECOL](https://github.com/samchon/ecol)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","_id":"tstl@2.0.5-dev.20180908","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-eeRUtMH0I8Ym942kIqDZUIUM8C6NUQhq9TwQ8epFjeERcsmrY24i+vn3xGGcmOfGdRZWJJhEo91wSSEEE+z9aQ==","shasum":"bc1fdcfef3f5c29ae97203feb18069c80d8934b8","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.5-dev.20180908.tgz","fileCount":441,"unpackedSize":882681,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbkrq4CRA9TVsSAnZWagAAufoQAJ8GX4lCsURjfr1L8qeq\nOl0wIHHIWI93DfrJWd0ky7eJMcQDQBsEOPUsVDphywkZhPzjvpWBDxRj/skN\ny5u741YZ/mB/xmKr0+8DJGmj0b3+ozh1Z6HKca+kYdvQhv4yctrAn1J5BO5G\nNB4ZvjUphUn/Pt1zSsqEgSCvMZdoCbYNqK7mN+KHYUmwmFaucnP0vchw23lV\nsQIo12/pWOESyyZxKmP8PbsOWcGEWsPPY944r4gaRoEer+qj8ZLReCVspLZ1\n6IaL38jLTq2aEqV0LnHyMIF/KLMci9VTgBUWcKeynxdT1qXuqPQLcj/ERBoJ\nnkkf3OA3UBABfVr/QUmc2ajXuIrrGWMB4ltklyuhOYzeN3O8eu3Nk5Hs0x7M\nMPeYz8yRWN/C3uL3qfBIqIAwni1+Fs+eBZeP54ozQ/Y1dWC+wi+Z4vgFpHtt\n5zNFQ4rTL+fFgmOblfdofNq41+hyEcYGRJ6ZPQBZvPxsNHCJ9EihnO/tEdBd\n3Igpp8lLgVTmw6ABO/MZRwq44gam8TMzgDR5qIsYkzyp1x9Lh+Ft2MIqk4qB\nQd4JsRMbdExI4cYE92IhEO7vf9NOWVd+pZvKs2s2t4DZW/CCh4R43KLwy3HD\nErFAnLReJT3pNXYOSaOAfsQnG4jEBoLAhblfiDnUjBHs8GTUPSETSwiI7hEJ\npWrq\r\n=AgRY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxLNDe3lRFU1I91K9HvaaypaGhad+Crg15eDxvC3r2ogIgHsjtEwegLjLvOPcHtXnf4lDfLDXLyfdr94QdcB0nv48="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.5-dev.20180908_1536342711218_0.28119774065426184"},"_hasShrinkwrap":false},"2.1.0-dev.20180908":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20180908","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECOL](https://github.com/samchon/ecol)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","gitHead":"228eab49fac9aeb8c6bf81e0a28cf713516248a4","_id":"tstl@2.1.0-dev.20180908","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-CJB6MMlkJgNavOwhLXvarp0voqXYBzoSBchLhauGFTnP/v/nBP+QQamXwz0oRJKBhIoVomD27/DJFcyfnFnziQ==","shasum":"c7d19775cdb70fa89ef707f66a4438baf3549528","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20180908.tgz","fileCount":453,"unpackedSize":896341,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbkrt2CRA9TVsSAnZWagAAymEP/2mTlKDKh0p2k8y/wL5C\nLIk0QJTxznKmPVw06MNDpUNJYJmhKEfe3nu/xCJJC+bJ1H1cmDCXD2Nt7D62\n8Uu/PRAf7eSu33J9n91ALR0gl/DCfhnj5EGU6kaXILo/Zt4lnXKgfFIFuYBU\nrkKdH6gwqPpMIT2m+xvu2QXLskF2KhVvKuaMmjPHET+2AmnngNxhI2431f3+\nAkg1hkY/5tjOFlXvlvObyFoF9YI81MZIIEDasLun2LdQMGZ0W7+l76JkH+Q8\nRinPVmftx9EXLP6h9dogNzFxOYpUiiOafiAX65CAQfXwB7v75jSPxS56yZfm\nC3yzDtz26xbz5vhzSe5wGKwwy75kuc08z9LOrnvSX1JyZHTEf8iKViZJnU8+\nu0oF7n1DcBEclnH7PzTNOExL7PcPP+oNvlzeR9lM0TcOVExVEOcwHdgxhqen\nW2PCrXUsJyweSkq6BhZPw9pnVMJt+0jfwQnsN+hCLRP3sAlw6S35Qb7c81rG\nHpjCNcKciJxEiojWzdE8O1iRPtqeWLAmdGjEVRxN4SR6eEYqmUimDH33P7Cw\nDRv3hmGQcgXs6FqZTl9Ou8/vIQHMNU4V2f23tQ5h19h0yA/Iim9P/c8SrDXs\nCEpscbJx10L2ZkvIKKHvkveSM+8z9iavV9QlLedQ3gr+bCRX/nCXhVAoTjEy\nVIb8\r\n=0oJy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDh8q5O7eMlG/GAjO0COhZwcd169qib1DBxis4GwApfUgIgQbNbnMz0Ex1KH29aX3WklRaEGj2ulHOIb4FE2wFqDyU="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20180908_1536342901949_0.4646773740815644"},"_hasShrinkwrap":false},"2.0.5":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.5","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"39851598f71c2b41324926f4c9e96fa4d75790e5","_id":"tstl@2.0.5","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-HH2oGLi7eGwzM3MtLoOi2FfOqHDUNalo+RXcntLR2Ib+QxjCjC1ZoXltvHlxzM76dCxEAMgo4/7Svje7jMiS1A==","shasum":"7bf5f304d98f0b78273bf72173457bca408df9bf","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.5.tgz","fileCount":441,"unpackedSize":882668,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbkryUCRA9TVsSAnZWagAAa68QAKP3wIUutEAA9L/imh1o\nh8NeArOoWc95B3mL9bzgubLgK1lypyvfdk++HZuzgdIl8kJ+M/ycao07Ef1s\nLRyBeo1tSxQnDik4POAkOPrW13+L7b2E3Yl7CNWy+a8N5aPfYPRxz+VO2MWv\nj+dLIwrkC6xZwSZv/vUjRS9ueJeXKZ2v4BIiWXywhaMNg1P8R++Pt65yXMff\nTZWVaPOOT4ZmotMjKfwKR9bT1nPXDlaGFdlgyPwZrOZrTH5qX8cIsh1Fd0Tr\nArlba5m0+qfwU03fhw37XlWsdExbnv5T1tpEl8Y53SzF89P6vwTYrIuBLkNB\nhubc+1t87cYHHN0R7MJuByj30xAFUlC+F7jGBAkfGqLDNFsBFGYmXm04R+X4\n/MPZEzEewY7hPW2QPnrwSL5N5Te4j5T5E9JZ5GpKrx9wg/5eIb9vC5eVKlGa\nG7V4Pc56Jw/7tZYaljzB6iTDe5YwedNd1vuD+V4gKwmhhwgh2w+RHY5ueoNf\nUoo5Rc3kW1im1sJLXRu0UEKicNo0M8nXwzAkoGhukDveps/o1rZkCkUg6vkM\nm5P5n8ny4DwqDd1Hq6sCL6xD47nOLflPTdp1a4h4O8+uC88go1Y0J3TyljZV\nMCsnqzyHmtM4bqmLhZvd8kQq453rnivYdHfjPL4IAk1p+TktAXTL7p8Qmf30\n4KAQ\r\n=AsXk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUVVZW6DgxboBkSev2hvzMGL3/NePIImamCCHHegw7OQIgEoRObAQSu4a+PcnTnOZgYpkZO0p+cVIHVh5Rzazw+oQ="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.5_1536343187801_0.3395051042028008"},"_hasShrinkwrap":false},"2.1.0-dev.20180927":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20180927","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"228eab49fac9aeb8c6bf81e0a28cf713516248a4","_id":"tstl@2.1.0-dev.20180927","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-yaGrdAB1VBwHLHsqT8IXHanj0pGSkmfaLDQrjW2JJrE6/iYoZIXUkFRMLzwUxOCGG0Vby+ZmA2VQ60X6wb6AhA==","shasum":"e87c47d30918b5252f29594e56d82e602d0a3135","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20180927.tgz","fileCount":453,"unpackedSize":883508,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbrGexCRA9TVsSAnZWagAAsZsP/2i4XDd5IAIEJx90K1Ph\nMzwrFST4pbD0G1/Dc4CrCndU7zoyo8q8gXivbC+j0a/h3RezHJGxQXj1Eq+b\nWj+24LHfEWFHfyatZ8N1vqlpe4vcTuh7UUWOi7VYYGNfzEO14WDLlIgFJICn\nNNXNYUAOlI1SKIXdH7Jpf0zyJxZ0TCJ//gVLK1YtLhVvi0WzCtJCXv5oP4aU\nwMBXkZtzBN7jxSuVib0UJyu2nUfLQr1Waufx6/puOHiT5QL8h0moDiU4mKWQ\nXqyMZw8OZLBiI7rBnZKtexRCvEqBYxMdjZe4X/mCZ1JqV2QDqU1hIilq9SfF\nL9AWwJOpfiBmO2ZBbVdnfrAX6MfwjcQvsT4r8SYa1bgTGhBnJ7f60inZVIHr\nt7Ch7MhSkfVjkaXBXfsMnX7J8qMN3l7MNxOWJqLTcCv6/NBa8d4fsr+CJb1O\nLI+BdaNUYSM4qzmjLyOPFoNPilLtyXdwqxRSplH8KsNH3NsODN5q1DuLeCGR\n5za+O1JbyWcTcDCIYFsoVXBJmfRu37zRsdH0rRmASRy/nncSadfTZLjzRg6n\nsTPUg4g//zm2xPQQLuFWEtsG3BGISUXO12wyIDS0kA9PhM0QjV8mybVmbuC3\n203qlVVH3y8kJ2bYpT8rTB7uovGVSb6UOtQTCWrOT/cgVDpCWuHq1Z9cRPay\nCwdQ\r\n=4lvA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHfnqgCGhxogxxLDsUREZuv89W2z1kLxhyZP4AaOzDbxAiEAvhr9rR6TZCm0iRUoPNbn8SpRByZf2mtbKPp05z3swHA="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20180927_1538025392391_0.5100746982152706"},"_hasShrinkwrap":false},"2.0.6":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.6","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"4075192648c95db2d127cbfe0c38c1506a381bed","_id":"tstl@2.0.6","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-vJNSSDwhyQ76UxL5DjUWW/E2lT4XrP1nKapRuQD5My/Y+JBByaEB5UZVTNATitj+z3zIfBt+wglQiZ0cQhmEsw==","shasum":"5d4d100bb094b03582868d25fcb7c2764321706d","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.6.tgz","fileCount":441,"unpackedSize":882671,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbskwYCRA9TVsSAnZWagAAcI8P/2cVrscWSd/IwkdJuJmN\nE5gMe6P9rLa0gQvDmYC7r+zb2uR1LiJ1x6VE+PO8VmhBg+OxtQjlb5hxYqV4\nCSyB79y6AGwCoOQUvre1JTaO4MRmmyUk9jj+08QZO9sZ3LKsXMRI5D+zMREx\njTMGMh4dyw5ieTwf6Zi0YLfjaUzRRigBYn5jMN8aSEmmKyh2e53M0f8lJ647\nfCoXje9rJobRIOOEYMkSbk2gYuSUsnJxfGgH9vqD/87zG8wPBOEU4wEchas6\nyEeliHFaE68gblF3+De6w2K0gLMi2bP4TXGW2WL2UV7ozw2mczREmN1xbuIV\nFgRCxpXUKnGKYKskFgIB8hLyrkBnc0hSUJOP1LX690wDtaagZMnvxxtJ1ie1\nbo/7wV/WAX8eY3f0wrphCddpbi8aKptuqj8LSkGn5Zg/EaHBXPCOu7W4HP+g\nK9uc88DMtOKBcaa/+UpyeMQQx3nHVCx1y1hxFGgs7b3gYyknLpqww68IXHNV\n+J0fP4L25nZmzghgn9+aZ0tWSmCfxrR0QZV4Kj4q/ZGZh0iTHC19HnkLsAoY\npb2d3gVjo02Vs9hxLiiR9W/O1IDutsQ2tA4QRUUNXlhMnmZYVHlK74akG4Cm\nHoD8+bFRA5P176xc+oulXZKcF69PDFQNuppmt5613PLCUmckc04cs4Hczxfl\nbKhL\r\n=KPMG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9FAEBcg4LemdL4KZlVrAX/jJcklOUYp0NkaQ7JRiEOgIhAK51sjGrQXBho7MSqhLIlr9oVUNRqSH7MdLUgtvEt5xC"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.6_1538411543136_0.9042571227095328"},"_hasShrinkwrap":false},"2.1.0-dev.20181002":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181002","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"0343c333fa9ee00f675e624ecc007ac36d4b0153","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECOL](https://github.com/samchon/ecol)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","_id":"tstl@2.1.0-dev.20181002","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-0BJMonrNTjuNAjKr3r9I/5DmAa8RJZkx8waZ5OCQReuD2z3Bk5inmbifY0k5ezPhIsETYGkUwC2LFRQssOPIyA==","shasum":"1b90273ada7ef7c042e5f21ce9f12809bbddb560","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181002.tgz","fileCount":453,"unpackedSize":897152,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbsk4TCRA9TVsSAnZWagAA5GUP/A6Sti0xG3nUIsKx5wLt\n2u+RZ8p/b5kJwHNM/xYurqvU35As7Vorfm6mS+sGeoy5FSzJMOtM25p2YyDm\niKPwKQ4kfJyEeV/EauWT49VutzAArxp9OaS5fC0RiPbCBPGZlVFV5AexvnQr\nUuMZpPs9chtFOguZ+qh2TVKODSpGEQycOYtRkdnKTUXiFzm04FtB99H/zDBC\nic6XEsE6Odmb+fh3xH3smVh+SS1WxAZmIODbTX5uRkRFUj2IJy4130kuG4LF\nJmxjS/OpyYRak8Yu7zTB7/Wms4Nwzx4LAuWjh3ARjh9bakSG5cuOEJ9qCK9r\nBkAIksjyKDjRVQHo/TO33Xon6G+A2+UCmF8MzxCZF0LoBXxTjI4L45uKzXkl\nxPoY3gsLeobj7mTTQQcX7CeMtOmj5xN5A4npcWoSVQj0fKaY52+Lf/3aE+io\n9NrXM5Pc01qQDpHDd+XP63OUfK0HxzmFSyhinssxzQ5mpbCZo5WeKduRbPqP\nFe00Lhckw8EAyz9ap4jwgYTtMWb0ZIgz8TKbO3l/xAx6NnShgAK29QWCbw8T\nlsnPfJ0mF06ygocRbFk+vytWat7gGsWtWk9Be87Us/EqUM7oEd9fN4A0A0h/\nTCytRCbdTtR/PbqaSVV6BJ3Q1ceRnKGDclCeR41QCZzJ3vIH86790Qzb2n+1\nwSJ4\r\n=6qGU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFALUMBwmtHoBpQgjjWV17qUk9JtPcHbFnBHHxs2RehaAiBXVGvqXwYQwT5ak7OfTzZWptaCLxAj6u3q8Fb6mZy5LA=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181002_1538412050477_0.4454352879809649"},"_hasShrinkwrap":false},"2.0.7":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.7","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"3862ba9963416dadc6a07c6388075ba5bbb1a7c6","_id":"tstl@2.0.7","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-FLsr6fn9eQuEWnmNiSkjgqAA9lHAqTt/ZV3u36HCXpM+UM6pd1sGDHefqhrGC8JRwOblHa5q0NH/U1q633BVnQ==","shasum":"3946d99672c9414db0be4a9aa6f99249e57edb95","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.7.tgz","fileCount":441,"unpackedSize":887802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbvzJKCRA9TVsSAnZWagAACH4P/2m/N9N2viDZ0n3kXNJz\ntT4aS4bjEElxlLyvYJ2wa49bnz7PI5WgUMNg0HQJo+SMUvgCiji0/sC+ePoC\nBrDrAUHK3VHIpICYxUJSsOuPJ8xfppkOP1NJMd/f+9kyCjoz1uFFiT08sXzI\nUtuhlpmTvSq6dKZDSBGSuFWrdns+Kqdqz9FcX/2/lj1c+W6QYaQE70CtdC9d\nFZ2neFNWFf8eQTVn0asE1lYbTn8n1ZEftuM4QpXGPGXZC65WcBL0Y7baUpeZ\neGz8BrbfiNMEQuPLmAp8CYTfXY0aSGRYuMlqYw3gURnrwTVCrEm0DZPXLAeK\nNa1amUYGDgEMb2qBbL/zWGgblVPkni60ssasm7CxFkPMounbOzUqMTj3Uudr\nJXEo7iVCvGIkFXD758e2rsk304TBDt9KNeev4B1OmaKXt7KzMXdnoLB/002f\n4eSXoHZ0QNoVI9d7GFpTdfRQ3Y0YBKTNdNctBwgNPt7r7gwu/mwndoiZSjLU\nOHFY/tfFF3TQjWSnMpAWu6miP2I8wzv3Xgla4hR2i2zunztUCe+cdnCozW8M\n5kMWXacAmhO79012jxpSwBoimN1aIXWJIXblZLst0X7Mxfl11Lc1fIAaGVkG\nqLWyGlG31kIxEqe6/9kGxEcAg3ug/tMuP444uiJzdJHRBeCZHYF5MdQ0o3qN\n1KNz\r\n=BQYX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEKS6iOzk+2pZvh4ULxMc1DaHqWno2SZ9H9u8xPieEXRAiEAoE42xAC5ZIhLUJDGG05PE+fmVNm/41UkYb5OXfgrVeU="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.7_1539256905047_0.2057419046413569"},"_hasShrinkwrap":false},"2.1.0-dev.20181011":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181011","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"0343c333fa9ee00f675e624ecc007ac36d4b0153","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECOL](https://github.com/samchon/ecol)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","_id":"tstl@2.1.0-dev.20181011","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-+JL1gINLkQ+WAQ2NFjt7Di9eJH4izaOpDkNX9AnYszELF/1SZU4lM+mq8FHsR4PgNiPX8cPN0Gy2ml7eAkxaKg==","shasum":"7b24f426a3a65c1d8476942479480f97a409c87e","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181011.tgz","fileCount":453,"unpackedSize":902454,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbvzLrCRA9TVsSAnZWagAAxL0P/RO1+beih76GWwDr5KlB\nS9N8sW8Wj91v2gkUIuo6v0A/Z0p+84DJvmuD6dY7eDqkRFiDUpHRPefo2Rtk\nP0lhjKmOhwRCC3w3kjvvRayoKf+SC1hNnHd4Oqn9H/51UNgn9sP1Tb/D4Dye\ndeXMndHY9KGAQH9VWHQEBgRDgd6mqQ2DrISP2pki9hrivdFnOG0J8WN7crY4\nizJtJqqvty5KQwrerH2Qo7dtRXmWeAdIFa0RjgsIeXBZm1B8dvTablhOrqp+\n8wAsb/YujMGqUODV0Lit81AkMEcTPQf5faZoS2tP4UAkVPovTnSSbZlTkP5R\nBwpZNGZjPlMgeYARSEP5rHBZ4SnKRzqxdjCC9voXKNBMZ99deIKQY6PAzF/1\njHG5FOdsql5hoFJC6srwoK+NRgmsGsIStfml8dVI7uf9rl4QfabB10udXaQz\nR1b0+t/pJiTCHnqt2ec3NnerQ9dVKXYm0N0BkfCHbEg6O7xFUzU9AMZWjtJh\n9TQ2yXbsTRbmdjpsfgArSBqrlxsG+FK0He+B1nE5DFLtqeJf3WPALX4MfBhm\nTVEGoPx27zB69NyRDw+u4/ogGRJWWEdHCliQuefFrbhs8DXErOqBkhTXUuuZ\nF702wb1lFEhlfdLRWLDT5TcB7T6DWYdxxJ+VHQ3/ym/3DzsvCLSkhMR4PFis\nQoTH\r\n=RHBt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDhdPXeAc/2u3DcG1gkHuz66CkJSPbfXW/HcodEpkr9+AiBglCnyzLpSfQWRf64hScUIZnwMrCC+EKWs/UZWMOPAfw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181011_1539257066386_0.13006856965447233"},"_hasShrinkwrap":false},"2.1.0-dev.20181021":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181021","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECOL](https://github.com/samchon/ecol)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","gitHead":"e70717d25471b1322a27d3df976ec160741c3669","_id":"tstl@2.1.0-dev.20181021","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-4LGmDGKWMOn3TSsAiKOZoSE7EOay1d/EecQqI1XZhzc0vvDJ/KDYodEEcWLWV6DhdO/M2NUfNM1MZ1kEFZnBTQ==","shasum":"624f60b6a996b34d4a30429031683d390e3a2375","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181021.tgz","fileCount":453,"unpackedSize":902529,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJby+T9CRA9TVsSAnZWagAAh8kP/iK4heKaLZGfNK7qKeBC\n2TqwRf7AcLsHKHsi2P8EDkXeuL62uGsMRzsrO9e+A1jr2Th9qFVrN+Tm0dY3\n348fdGCPzY/vCxY+GTJlBLiGUzaMldZ88lXTIbX78+A8kfvioGID3fBeCgJF\n0WilFcAEQS4oWBOVb+1YvSHkZ+VrjRbteVdRrpGeqA5usSOA3q9leYtsJL7O\nRSyWK89kQTpcKnGn1m2gud0Fw+qVObx3f8BtrtrYM7wfWZHXpFfE6getrIgr\npYycdRdd6GkVkHml0HmT4NM9vvWewG9H0sou86et4T+uBL1SQuveiqfw1+o/\njm1AOMLwEZEB8Oy+oX+RA70DAoSdxUcZAvdoFKSOjfdKpSDGaXnP7z6jKuxy\nmhDvY67lOILAvUGhS6VV7nSnQMiYKBe8tkrv77Swbsnl8RLfYrta8TbSjxJN\niKJHEnhINOtHqyW+hdIdfh59EAqJxdArJvK2EXfhZklh0SVKVoKMoh5sH2Io\nG8PF/maqZhWtZ18c6c7mtlxDfhXRrbjJeWpN+Vqnj3kYETuvei796YVcK2Kf\ne1kp2gLx62Tpvg1IZyo/Gr63dNbiRjs659+85yO4q8mYMp7c/dhSvUgBxUMz\nYV2X5ZvCHcpARhzaxOYn7vm6EreKbU1Zsefc88MHGsIBjsUE+BjIM9bDQIvQ\nltAX\r\n=BIQO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGEKsh6mhPNfIFQQMO1obcTA96xePymESBi8Deyy5O+AIgagIPDZ6rA+3wBCEmqCyZtuKqXMHWGezzdmQKQzEG3yk="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181021_1540089084485_0.11712424712262726"},"_hasShrinkwrap":false},"2.0.8":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.8","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"3862ba9963416dadc6a07c6388075ba5bbb1a7c6","_id":"tstl@2.0.8","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-i/MM65Zx8Ok8+69NyFIczg8hE4DyBbR7A9LvdtSaMhPfCgl/zYokmBj5467VSEk2m7duPELgpdYsdJKpr628vQ==","shasum":"cd83af4cf210a36a2ebeaea4c27df78b9417943c","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.8.tgz","fileCount":441,"unpackedSize":867546,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbz8vMCRA9TVsSAnZWagAAHEsP/17L0xN5E8ViOWKj5bO3\n+hFzBjqlTlCmkNNorPzJYm3IhZ9i/9S/nNz4/C+fOIvB/BODv83PaOkLT8nP\nVhO9yDhBwatss7Q4F7kQIyef7mfGhNVMp5uxBtfSV2wPZ+WUD7ftuJjg16tX\nGseD+EeGjpVegVLmaMsYlTVcEPfXXpxd8BMhRIpzQmpTDM8r/IzoUhQ1lYsJ\nUwabbcZwsSVBSep13SwzH4n36JTKTOCbvrrf8KYzajqGCHqDtHu8Y5QHP9kV\n8OBtTFwwXG0SwHBK414gA09Bf7ktuLAvHc3Jyjnws3zrFk91hezgEMuzK5vL\nyh1GsxIKUAw/dRPW6ennTNDx0FlYxnCLjkpyzkeuz8zvfM5JaSPduDQ0dOLp\nbpYyBPWsugkRC2lVctC4XT172iA81Jp+qwvMGt3k88+yazwjbr6+b91q4Hj1\nmReHjeKsTwkr4ZrN2By7ze+mSOGyKDyxUWDDb4G1pg9UE2atl7j933C82oEw\nQUttv6VRvhRzf3axdcbNlb7CZA7ta6chuRPZgwhpYXWNBM5lEA35n80o0ln/\nf/b6sBmydIp4mbBCCQUWbU6Xqvr/gDYqjAmIl2ZalbM5JrY5oj4VwBVaddgT\n9d5bBd+T/frv5N58Jfnwti5vMNDlMum0K1apiq0rtNhbdSr2WBA9XX88CwEU\nYZUq\r\n=ex0/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXCYlOIkRTFXGHdimjeXtSoJ5aPzmBBmpSTjkovSq7ZQIgM8+WYVYppOmCOpniwvP7KGjE7hCh1oelsgpQRe1EM3U="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.8_1540344779324_0.7177067875198644"},"_hasShrinkwrap":false},"2.1.0-dev.20181024":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181024","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"bf9b0a5e41c4e0497a8a5edf3d186a769ba0b017","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECOL](https://github.com/samchon/ecol)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","_id":"tstl@2.1.0-dev.20181024","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-LWk3jGjoqFuPhqczfxI1lIUGRP/xusPZGvKC0qnn9/D3U5Wzb49WFD3IwBnVIHKDDtvWJK+AAwKmsTkPJaEgzw==","shasum":"02cefe7e5a60b5052bcb669f159e55baa547544e","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181024.tgz","fileCount":453,"unpackedSize":902529,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb0GwpCRA9TVsSAnZWagAAOB0QAJZwn9DfxsCnXEln2H+m\nGSoBe6X9lZMop4hqDRiO3itDuXMDnET/1K8k2Lr1VSp3dTZjCfuZUmIaN0iJ\neJrt/gzYH8yhPyqWOuUk1AgOBQ9f70GV8wHknQKHCnHglBAAP9rrm9YezXeA\nR1GwMjqy8HyOWvJB57fSc9PdcRQH4W63mATXBW+GwuBtTL96rdXKVr7idkBN\nGaUdsATqzev3JqoTd1y9Wan6MDe9UpG7jHlKOXfT/PIrGhat7FGgh/4Vrvsu\nIHOCBd9cHymAUrGdHIyzLvO7DSS6/JzFjlrWYbRDQ/2jiiz0DMuxg3oJkk9b\nDUq0Q5xwifmkqdtzImJohaRpLlAEeiMkM98eOWl+JnZbSs3IgtHDvuzUSUZ3\n4YiueO7cOBoZIl5Je5r1igjfvUr8rC+hSPXHgHU5QRbx849dpW5Ew5GwWXmX\nNJbZ9YvxLYqf1kk/V+qe9BRmOtL2Kx+KJofR1EgnRMozkoGKm8rtD6oz2/XK\nA7NECyICRgY79j0oxATyg2uwr4T6U1o5znH5HIK9LTarHmP9r7+m7sdsiRgH\n8TBGrbaZIP3A5mW5d92ed3lA9ajbsRwzGaTOg1BPsropl0ITh8yByqyn5O13\nG/75PcYEaoHRP7cZtTMe10WcxAOWpHS3vy/nN+PSp7kvdaWuHrtvhVX7cEqV\nF5BJ\r\n=SO9M\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZz6ad5nn9BYcBHqoCBYYYh5gYPMqkFGix8vMalwMl/gIgfknMkf54fCbhDzQRXH+fr5QF3awPOS46YaC82D8xWOk="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181024_1540385833101_0.24106610286448782"},"_hasShrinkwrap":false},"2.0.9":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.9","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"2574da8ebec506d416ec830b51476840e540d1f6","_id":"tstl@2.0.9","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-5LcQ4F8DqnkSbcgqveDFsKHKLb0m5bGNgBGq4jzJXbQueOyZVQT5X76Z01v6syKlBo6ezI+4rykoPL4IZpH0GQ==","shasum":"4a0b03fd6b6412ce9bba70c87f491694315fb07d","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.9.tgz","fileCount":441,"unpackedSize":867616,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb195sCRA9TVsSAnZWagAAiZ8QAIMun4w8X6VEJw/t82GY\nqFWSuwdE/rgSRduIAUudBymfG4ZpUmInlm5H4wjK2tlPw/S+iLih3goJDhjF\nQkuLQSRfWq49JL5GscWtwYGwKZIn9mOeRfsm31xOxbrznCsq/TrPOXtKMr3h\nT/xM2x6wRFNAGl9JD+fdQGdTa7SSPkz2E/BXQ22ytevJcZG4DRaGC64hTDwW\nig0I9RW/tjc7Xs8ynR5oFzxtM3gtKaaXALwQc/1W/hSc2RuUnINN2ow/iR9Y\n3wlhvFgXbjwjv3SHd0DIly759p7VD90R+JiSsJQVKPbWcrETTceRJ6Eb4y7f\n2uFb77c4o46eey6qGn1M7R/HrSYK7ktgVJBRgZBDxW6vDydzlhQxDBHD+f1I\nCxi30UoooBf7BVuO4hMGdr6jzFx6d5D1Z9llgFzouSKKWgjiXF5YfKJ6un2/\n8Qtcye/Cj/P4uV5+ATMdDLNhFAlVGaf3aWfZq44GP1TEylMdsnpSWSCLgH9W\nWWQH3QmOyOTnYub0OlqxJu47hUo7g4o/BIVyxlM+jE2/3mFBwhLmED603Fnx\nA7G2CNgSBUV7Afm0dZInpq/mCtHQCDtrjfRMAFY2S/bLW4KPn81F065Ob2tL\nK3fBEB3SK2ZHO56W9TzzyWhhnlUmli62QN/wyKfzKVOLhg4wB62x7uerybyU\noRAf\r\n=a8gy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjtglHm8Ee2rWYzrOhzdklwQFztDoR/BQu4yQAtsmLFAIhALvIlzH/cpRWjGW7uMWEvhzqt/ZlDyz5GDS1PzWXb8xH"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.9_1540873835549_0.4508601617867254"},"_hasShrinkwrap":false},"2.1.0-dev.20181031":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181031","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"bf9b0a5e41c4e0497a8a5edf3d186a769ba0b017","_id":"tstl@2.1.0-dev.20181031","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-5GEPbJa+50e0PilxCVcjpasUWNv2tHD1sZXTTHAymJ1s/cY1HfnCMQqq3+q7bwMTpnOTRHyM50wxdiaEO/5rdA==","shasum":"c1fc58b25b5d5ca3cd32c60f22ce15ba5faf12f0","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181031.tgz","fileCount":456,"unpackedSize":910308,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb2cKkCRA9TVsSAnZWagAADXYP/3xsccWliYeyRPTvkqt0\nlqHFXNbAuWPUsKXoqCUBqYSTvMLP8lSwLgTE1oBW5pq0Ap/IkK8nDaDV8Z4r\no5HXrgZ/rJB8sSdXw7o59NgVu6gSaUsJzOdi0tae7WcX1MIi0Qnnox+FUy2/\n+Talc27ux2+0tonXhIKxFfGmz5eAP/bjP45fnfr22udKAIbprE42CQJvJ1YL\n4QfCZWok8JlsidX5ulKZWJFxnr0UAZkrfC/5h8+dbIF4P2ikkokJN0OcNBXT\neNIbr51gqHuXo4888BxBfglWwMugsByinZabxk/Sake8QHfayyTLj4ir7ab8\nUk/IKCdiSnuhm+Da2qm8HJ4pDxFTwk4PCF/96bTmguDHqk6RzSeiWgJuUplc\njotDwDU40jiDI5tpt98UlEcaEycbkoPumZSfyapkZzySE/mCpqxJHPuOQ/k9\nj5d5DCYKne6B6rRDfxJ3i5mxATECcvt88jnUNn+0CYebKuhn4785PaBKIlTT\nAzT2Gn6Duz0l+asjqCNZwAbaPMR8NjVZJ9RVn41+5Ehw+y8jy2AcGlfNUf/A\nhBBqlA07bzt2EwauoA6iWbBxqWI/EMgQnAV/HmR0NWVJ9MiK2PGV5hSdXDZU\nPMYqw6MuKjjYmQdD5E2IG12TG/2lwGhgbJaA4Vsc9f1gVWXN078DhbEbbhi6\nYd0E\r\n=n0l3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBfujx9NYwo8JojgQnxIKHQlU+A1iv0GwITtXGsCrJmbAiBc0iHlSDx2Zemo/gmAb5SDRahpuZZihrfkaHl6jn+8jg=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181031_1540997794245_0.27571340727238725"},"_hasShrinkwrap":false,"deprecated":"Invalid"},"2.0.10":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.10","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"2574da8ebec506d416ec830b51476840e540d1f6","_id":"tstl@2.0.10","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-/Yeavuu1xvrabjcsmjlQGNpqYjtOz6nqhVY5Ud4eQtcEyiHpSHYRK1KmOKH/ifSSGGPq1zTXmweGBsZ1RmbxhQ==","shasum":"0fd3825a114d90783179231d3a81bffaac1e306a","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.10.tgz","fileCount":441,"unpackedSize":867619,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb2n3uCRA9TVsSAnZWagAAkrIQAJRQycV/J2PE8hls7WC0\nfO/JwgSmFQj0f2T+17K9FVIIdccgu4BsCo/icVduwzx2H+XlUMA83Hy0Iv1T\nfwpohghfijRDpEnUIU73QubtQO1L7usRifISpWnqZq+cBPd9W08m4IkpQLlo\noGeqMGx2t6iva4xuBCcNNqisYkMzWD/Ke2TduxO9aQ4BhPbn7fIGEL0HPOVR\n/hdTIbBjkcLrfOCWg8MQR7fmZOWiH2OYCN5YHsbFrvOhHGKtOugwil6BeS0j\nPPgIPgK9Pn1rVIv2D2MosVmyN2f5S6wWbhOFMul8oSzOmL/R19pwK7vGlSI0\nnzbYN3OVoI3M2tdmSk37Ao9L/iT4Buko5grYTwhqwZqq3clDQJA2kxSFnd/R\nLIG9i4qEw5FxchrJ0DU7OR7Wo+hGP3Ji9JHcKI5YBEGgyR9Z0ad8vnaMlMmg\n2spzq5/vkdZhlnl7RvfYAqO/HOMKYbI3oYcS8TZbwzlXngEs4wbKuGODfYbF\n/GoYuR3tLqJLDhofZe9Mb2n2ifDV0FmxNPvDru+6388ouFsKqDGHGNCILbz2\nggn+ZU7W4qz5cwQFYbTg/RkTy2Ymmk2Y5nwc75BsKOahLhPXEJFMxgRnAVYQ\nqlJIERu1WoQ3m44GfSWALPf+wkl4dOz8vOKD/3NY/WH8a6XsJNwN/Ksj4YTs\nrIA7\r\n=+AvJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8tPkmKjK+F0U2DcKOs6pBHBd9KYOo+iHHM4qeICEUvAIhAOYNVLPM+OSY6nCioLha66+Qr/ilYR9RWnQ+o0pbZsxE"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.10_1541045741429_0.9744790020101015"},"_hasShrinkwrap":false},"2.1.0-dev.20181101":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181101","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"89faa423e7ba8900e8685a70299e55a4f341bb52","_id":"tstl@2.1.0-dev.20181101","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-Ivh5h3CAjMpuJe91TX3qeh2KADamgTQ0GBRtkwx8UFQj2DrbMAOmfsXe7sHWdsOlCuSWLPnNt2ve2ZRb/ZPSOQ==","shasum":"d6b003b695dc1510de636b56b6154ab04ca2287a","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181101.tgz","fileCount":6,"unpackedSize":18855,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb2pSdCRA9TVsSAnZWagAASl4P/0ZjWhrDpkX1PemQcvyQ\no4D8Jt+uZjP79H4ZgRB1fP4RcNc7kRjtRjlqMAki2k4HtbzwOWTsOw5iF3U+\ndW3qj+O2XtCbxA7qBRrAgR9sSSNUDUD2owf4CGROLD80h1A61Wce16N+Zh7g\nyg1N/VIfQBfRYoJHdthweoLrwW9qtZpxtit3pQmjzCZMNj4tw6hO8ltzH7DG\nSG6GX65fLPSX+bbtcixq5Y47SLULPRwOQrc5gSr8DJG5SZkjBTTrCAtMr1Mg\nODJwlhe+IFzoDkkZoYwEHcwccosZKdtY6m69RIfSPRpKLMD9duEQveK0Rya+\nNDHfhHaDUy368w+yWhvMjiMNfNImBzW5REsYQH2+Ryf0hrQRl1nWQBjqO3RG\n7z2bFLOZIig12up8/cr0iO3vLYvQLNkVqfePC9J1Uu+sCZy/jDiHNbxXryfe\ncR56U7Eall3/QgNFgi4kmagZFsS4aybsph8et+vJBRVM1stYuouqlBNgNmu9\n+W9mSMe9dMmIslfloO9wQ4W+b667uiIUL+x2Z8D8Upwm8OpY6AsfL+GFUtue\n+JeLs4zqE5fc+DT8d2K1E2wthY3vQCutHBbShu790UWbLbQnltMwR5uFHyK7\nviCjdMkG0yssegv1Eb77uyZR8TKaYquZUDTP41T/n/QvgtyGeT2AqQM0wPOd\nMrPZ\r\n=dTfQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEXX+6BWKz8ERpJXhACcEdtznQdWVvq/+k4NGYaZllPNAiEAwuWT1AJY0To+ti5VDtkLFbHEUVFihVR/T19E8TVnH3A="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181101_1541051549249_0.7071963891324495"},"_hasShrinkwrap":false},"2.1.0-dev.20181102":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181102","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"89faa423e7ba8900e8685a70299e55a4f341bb52","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECOL](https://github.com/samchon/ecol)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","_id":"tstl@2.1.0-dev.20181102","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-HV3ieMM8Nfg7FuxFy+sFaxWKXZbfGzNB/85nqINtkbu95qCcbA1mZkFfDI6bqIxK/rgez3iJPKmVf0vxh3Fugg==","shasum":"d084faa0867904f32e382de788ea5087e3995152","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181102.tgz","fileCount":465,"unpackedSize":919272,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb3Ec/CRA9TVsSAnZWagAALdYP/A/TGw5T9Xn3qGmppr5d\nke7HlzOiyfcdwD17OPYtja98WJ4Uew5a25i2wkiBp5Q1fnMkf33c4GbVDXfW\niXIHEswsQ2V2/5kf7A3a8e1wGDWtm7k4IQQuCxtelifcSG3YB+aSv1BwlDqM\nPvnZ2yj2V3QpKWDMcHlOviV8JttzNtxoclQksz4t/wSNZx5vCpF7ud0x/NDl\nfNEjDRx1udKJxzsPuK3IKVJxpsAiyzYHzEDaj+bJbVejzMY5dlk0hGOUGyLC\ns+/s3Ea0aUdO5YGEqGpB881QsSpZNJ8o+O3JzL0t8W9m65fiFKxCohkAlSwV\nQEz5BZk58kEA7SaIDd2EgMDHZCOWrr8pMpMYGNZVq/2B2jy47wlFSmYfi5Eg\nedeJcWFIoLzusrIBZHe4FLY1t7pAKcMZYvRKzF073HIj2v+Z+QhD/sYdfrNh\n4Xbk3Lft/G+WWcS7JWTzdKbleEp0wlWfxZY62gVm5yroofVF9FoLCh9HDi4P\nlGyZ7T9ta3kDQWoTe99j0NpmVOiU9x/TTBdw43Irsh2qP1Uy1VPY0WxZJbcK\nU3NchCAFAsO2YAnA/AbJA2Tc8oth7sM6PavYKwkTKXLd3qSE+o8GmzqYxbjj\negZCjocJnXSh46ebzNivfKVO74sFFuKQlU09vF4ImNCun53ye/UC5xUAZAb/\nlFnb\r\n=mJ0D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCsFOdbF38OHGy+3Gkl5kZmrsj4nuNdMuZ0zhPzHRZtCQIgFCY2fkly5hTIib1YWYtYz/tvDoN2LiO5UzzUB0os7Y8="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181102_1541162814294_0.06670920922067314"},"_hasShrinkwrap":false},"2.1.0-dev.20181107":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181107","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"a961ac0be8cb42fb10c95ff42ec3e9fe43706d6a","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECOL](https://github.com/samchon/ecol)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","_id":"tstl@2.1.0-dev.20181107","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-fr01UvwTVXr+bGJWsJSUiXWjAjYwykK6nrdGg5Hw28GQRWJMNIGFul4SVaECiMCEDNCTRO+76QcEQJpbFHq8Mw==","shasum":"14044755af28645737a08c7fae787e396226c6cc","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181107.tgz","fileCount":465,"unpackedSize":918812,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4tsPCRA9TVsSAnZWagAADtkQAIxTEVmmjJFFxxjvndIP\ne8GF+2JIYxN26UoTbi+Atfp9u11rxAzkuycjqo9p4AfoEv4IBXbxrYvUT21a\nI2xsyhyJfmLJJL8awlzt0cml38MPd0WjXT41sK7u+qfJutl44VAP+fGeZrHX\nPHcF5H9AvQkLCNvr9pQxdcTIqrD59jlI0FkiwhjP1085yReUGSEfkGj0InuP\nCHGKzFpGmXWZpiTMRKqSzwkxoIIw+1xMKB3OIkV/wSl8GgfYObhDsOItBl+t\nKLo9XvqMBvzsT0cZuvwWzqnZbYP72dthxpwQm4jprjx2us4ayVUbuxQKhgrm\nOH0zInXUZzlyD7Jjw4pzgoMsV3+fuj4KceCHaiQ2I25OKPZpfmQsrIuurK8v\ncrMo/wwR5VOwXr2Vru0p02iXpG+wJb4WxSm2aMWD7f/QobfN7wYd4swGZDMT\n6jKKFCXPxhGOFPEKrJg9FdDdGJfdTkSartkRCCIvLuDId2XsP9LWIPVKlrRn\nVxgQMNF8CoqzRKsdoHqKCn51JRYuS6Anp6iyyqdxWak3tlBEi+/KTEqPm9z1\njq8RGQa+dq5ckjhjvuJW7rW9KsP6MICnjjcmoD/xxChor5kDPFpQvLr8nNNw\nDWH+MDeCfjnJ8enOx44r+VF8QO0g2AaxOVy3T+5hP/gmQbK+Jr6F8qBlNZtR\nPKJx\r\n=8zmr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFHG3aqeQIHVcppYSkNzauRT6ceRdSaw4MLpR6MCI6AgAiADXM+12517XBvjFk3uHV3iYDJ7kjI+2ryRECLXYbP4yQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181107_1541593870687_0.5768022782564033"},"_hasShrinkwrap":false},"2.1.0-dev.20181108-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181108-2","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"a64d8740e4827566958a0151f3a67584a3f6a8de","_id":"tstl@2.1.0-dev.20181108-2","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-3bnkhAG3WYuKcjstsOEfBE4KwnXW5acgcsTXkpmMKmjbhbabJ2AQCNz8D3tp/bIZcxSSdG7J1GVRcjAirLSNaQ==","shasum":"3eecf67712fa0b73a3ee152c9e3c8c8d6f765db3","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181108-2.tgz","fileCount":465,"unpackedSize":897796,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4/vQCRA9TVsSAnZWagAAwMkP/0r4NENm+32NCjTVJN+y\nApfEJypPyTqMriHEago94wuNBQYXwJeATJUGu9wtFDcrOOKOxdEZdQauhqZI\nh2DzjHhNOPyDiRlcPiTcVZ/1bXYV2VtSn9xdhx4BtjujdLDxVQnDZroV2dV6\ngETl6HPPXdFzxhnk6sFUGkHAV2DH+UWTXBL54t9MqmqFRv2IDOcYf5Vg/fHP\nAh/nnASfDYGo92gvdA10QXMv/0423O3S2xwENPHky0GT8w2xAqdY0+2qx76o\npcpvQ9m5UuSTmMUTCHWab1llBCd1HPB2uM/Cmt7fegSAZVCbhGZi3IEqy0+3\nHPtZbuelLZAGGTFcjcMkwGaayv+oDTiUOBPKhLWnr9c/ywg9zhfKSOE1wBbk\n1LrY6PNYkIURfI7hLK6B8RawhXsHJbvLzIcoB6iL0FaL7SBbRwcET8Qa9ogA\n2AtNjHz9e6tBvmXzwfhvy39PvD6gCCzgV6kXp+UjjYB1W1ZGEFpRktSRU4TC\nZTGvaxghxi6GNBqcEBBXwZN11IkcK0855cOND2WkgKJ6ybVd5PBP4BuR41H+\nQwc7TDwrZWHMJ5Re2uakHIorZckNbBULjI3DL6MTyWr4MaF/agl+cMjND73h\naCxTwGs5Z/tn+0MIcnqKwIToUHVzJuJPlnCFSs22dyfUBfxX7RiS/wNVg3X6\nOmI+\r\n=+yN8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEGS/hSOflVZP7A6G0Fu+OPWa5+n3LRG571EJElMDAPgIhAKMU0bPtXwwSjOEIS5+p2nGV01FBCSpIg1Vx4f2bNImf"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181108-2_1541667791942_0.23503534992057684"},"_hasShrinkwrap":false},"2.1.0-dev.20181109":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181109","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.10.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"151f0dac7b0f66ca553fb303575315dc21e503ce","_id":"tstl@2.1.0-dev.20181109","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-tIEKR2cEv3rnCpBbg3znp3gGuUBvYg5mYA3+IlYnX/XeIgxGxG05z6jxYeH4K8+cP5p2m3wRTYGALisq03wkTA==","shasum":"a6db22fcd4d6562e9c2fe964313b262af2d48003","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181109.tgz","fileCount":468,"unpackedSize":908924,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb5S5XCRA9TVsSAnZWagAAO8IP/ioUi9BZqectooJ4VXWR\npx0svGhYnLFiqz0UkcsYfc/pVbNbTeag4hupzNsxJooehGe8w7qipj7Xc/un\nbKvcn3nKhlECmGL9aNqhKegkiDMHjft7ABT09FNkb5MIjyFLgtMpzigIS4JT\nduqoCtIfZ5g5Q97QoodENiFH+/NVGSq5TVWyMEV8z7dK4VGK0ifrf5+81av5\ny46vMcxkg/Meo9YU3w22nhOWXYPSPSp0e+ka1fCGeJFUE7dsEx02AlitBQC/\nFhwtvgj+tWAD0qH5cp1I5sDdcdg7EM+Sc8q0Cai9N/OsLALM+dRsJo1AjdiG\nN8QfXFDz2ak0gswieSdSQy5iYC4GONRqSuofB6yrM/f0d9j2xvMGqTodZEk0\nT4tugt8IccPMdpyP1VUkq7nkoSVXi4/ff3TiQgAbAY1ZQWIElObEnNnTGAC7\nF3krx1CTH6pEI3MAmovB9cIu4APSxJjvdC3pgL8ZCivcJrTRRaVd+JUBKQpo\nxrkoPRjS8B1iT5raHZM2f77tikPl/MkDf5zfXkMEnWsIbY3XtVRwXa4aIvMG\n6NOpLytiF+Ge1qPrByBqQBCzMd6EwS+cao8OAzH+SWHf97cQhjVJgZRDj0P2\nMZlEwOpyTo5Qx7kT2JH+h1OM+MG20YtWz0Dl666uXy3hg9Q0lWHVxQkasB24\n+2L8\r\n=rhqz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0JP0xH+URiebZ6kZsOxHpUBrg5M1JiPSTWAddBlLQ0gIgNKZkfbuHpLsfQyspfDh1i5hEbP60r59FpEVtjAWlTNs="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181109_1541746262207_0.0345931996338793"},"_hasShrinkwrap":false},"2.1.0-dev.20181110":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181110","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.10.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier"],"gitHead":"50ff6d0353480448ef6217360a5a5adf29646781","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n> ### ECOL\r\n> Extension of TSTL Containers dispatching Events.\r\n> \r\n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \r\n> \r\n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\r\n> \r\n> - [Visit ECOL](https://github.com/samchon/ecol)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nlet map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n// INSERT ITEMS\r\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\r\nmap.emplace(4, \"Fourth\"); // C++11 Feature\r\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n// ITERATION\r\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n    console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n// LOWER_BOUND\r\nlet x = map.lower_bound(3);\r\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n```\r\n\r\n\r\n\r\n## References\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Related Projects**\r\n    - [ECOL](https://github.com/samchon/ecol)\r\n    - [Samchon-Framework](https://github.com/samchon/framework)\r\n","readmeFilename":"README.md","_id":"tstl@2.1.0-dev.20181110","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-3+FQaw85MaapNCO28YxZk/EFc3J1nuBZFa9jQuPoxZgiNsBmzT97ereA7DOUl/B3WWDrenRzR2s1mItM1DkIdw==","shasum":"e7927c3d2825dacef561ffb61140ce8c373035fd","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181110.tgz","fileCount":465,"unpackedSize":923235,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb5m9gCRA9TVsSAnZWagAAHLIP/iBRuKBLSz3EHKZtey06\nXuriEiOBmx0aByeqhG9+0QPA8P7ovUzFfYMoeyO3AaZQGpUiR+OrHr+cGucC\nq9S9WrE/olaUl5Jhg+s9PLs1mYaY5eDWzXgXgg5skanX+l/Aj5L4XXxL1HIW\nm4MsOwEdQaFNr63uGx7Qooc18RN/TPsvqZaBIESE/K21FE1HuZItqg2MqirD\nHnH6NYcEaan7YVaxPj6AeDVhdCY2Ev6KcJBrp/2mOBnjbZ/WyBSVSyjIFGpR\nz9n1jdkA7mFbORR+mx/kdTio7kPoBE9GigF8fxbZ12pR5ln4lRqkbx6ZrFrO\nyJCoGytJaOxaHtJCsvTwgXVqXCxYJJY4Q4Cj2ZylqNDIELqEiJ24gI+mhpKD\nwiy5uE4d0QUqX72N0pnSOyIbnEvOC9TpvfAJJJjnZo0EuOItB21npXs51EYE\nOoHXBJECsweejceuedSgNOBHA6dV2YSPYy7b6DuofFFJYIt23LqDUnu/g9uS\n/JNR5jahlY1Qzof30oWMBG5cNM9zAg5jO6vuaiVGs21onj2keIosJmTUNAnt\npd46NsJ+DxfP8oL10iu7yBo4EBKpL7YdMb49zzsX2+xIjsTtw2wf/B1t+ZHl\nZiSMqlTwxqbwRLcs5hMIwUzzygO4kEZ2BBfJr2Z2AEgp4UGgVjatbi5OJUCK\nLyTE\r\n=trcR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDEHT1PFDlVnScVwpdpAeRMKwcWKi+1tNr1tvrfqchRMwIgbIhaszuAmkeZYRKPtspGBdIvFU7fJNEQLvZnwOUEQn8="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181110_1541828447887_0.8034494581988405"},"_hasShrinkwrap":false},"2.1.0-dev.20181112":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181112","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.10.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"561c48e013e434768d44d749480a0d50592c41cd","_id":"tstl@2.1.0-dev.20181112","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-JRcg2FCtz51XAB3rnIad8AIPo8d1pNp0HQmJGkTihvEf0Q7LaI1w7iV4vDDqES+LZIwFBFOe8O0KeQ8j7drweQ==","shasum":"001b94559ba2acd79ec883eb2941d878bd2eced3","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181112.tgz","fileCount":462,"unpackedSize":901493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb6SMcCRA9TVsSAnZWagAAZogP/0BmvaFcCORFQ8kk3WCj\nUX5Gp1y8DfeUOQjhPXfyvb6Sjh09Si8c+xs8fBxW9Ji9MbUOvY5S5idWjdTe\n7FtW4LN5rQWhtBsEZnOcyp9pEmdYLwwivUfmvfiT6/s4NU0/tZ1gomhGugWo\n4ChrqCvizAXg0862LgLEMjwHmmeY4eVx+ffdpHWD7DRGhKBe+KlfpJu6MTsq\n2Vw6Vzv3OSc2LUZf/vzSWVrhJ/TBdvEGnXHzTJ5lztDZ8ZPrOKdUiI3WM45P\n0w4A7AoHol7YKa2I8SN2bMS76hnAJfZtRxJ4TRtaNXoz804WVgt/LNtN7mTy\nc1X/oHg0d91x8ZJMAok0u9s9owsODXlewzC80ZLx1hWJMViXXqTsbVE0cqjF\nSJ5zVMGtUpsKZGXl1Fyk4SJt2Kft1Ot5m+vIbu6FmH222Zimdl4JBhSVZsuA\nUSlxYs2XCQodNRhPxCk5ulmNMFznp8xysv/vAwEnj669vQNlcFKxY0z9EAWY\nes+WdggIKhTt7SBOXllC6fPMw+ylQaW80H7neIQvVm54ZWYYoiNvzd24+h45\nbsL6xTsPfqMfwX+emzBc0GKjhK7AB6uqpy+116FK8nfImbo8sJx0U185mBRn\n+9gX19DZ6gACpeJWIPh8wftYnePP8UNgM5h7CA9Sut1Uj0q06GAWyrGkOuH/\na/sU\r\n=32iJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDekxoycsq5yyN+XZ4to228RFrJOs0dWVqTEuZTwzfBigIhAJUdLonznbEvHIIA+SNIefAuoukmsZzIe0+hRJ+NRHvh"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181112_1542005531907_0.27273619722466425"},"_hasShrinkwrap":false},"2.1.0-dev.20181113":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181113","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.10.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"561c48e013e434768d44d749480a0d50592c41cd","_id":"tstl@2.1.0-dev.20181113","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-UorcIttGhTPnucmH6NsDJ97OHTU0AH+3YHPTYir9hCPQDxpR1Ysi2r9+bEMF9ZsHOc746dxzKd2SDG5ZVt8QMg==","shasum":"5ca351a2b5fe0e59ce535d20aa1e84693358641d","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181113.tgz","fileCount":462,"unpackedSize":902492,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb6oqUCRA9TVsSAnZWagAAP/IP/3cnSm+fF6pm6aJehp4S\nuxZ/g+p8r3vJRysZsiy39JUw7ghSrw9f6oPJXOo6IxCb+JZv94YSsGz54sJ/\nWpzNxhyo7ulonQatb0ySPzp4d+rWBJCCbKfvBu9kMLfmwvE/mpO8+CSHnFli\nHSZwsJNH81p+sG+L+89+01l6WRN6HmFXPgeCF/uzXO+gBOXsPjPDhoil5MSa\ndv0t680JUa2LtOz5I4cN43pWt1iOjU3ffvehEZumQpIr8d2DTQ59djI0T0E7\nD9RxSVTLzvt5m7tkDNi67eRynBpFQck4uiTHrQs629PxTm7Zwi2Jx0eicwMK\ns5GMFIUxLfXv+pvPW5hJZbuvQn3bXzTHTaOv9km5DAenNv6PSMjxMj/g7L7F\n3XrDh39hj5M28UHbERqN89Bo65FP2QJJikYLaZuV8OBqDUBA4F+e9AFwczhG\nJajocCGK3CwbZs/e09owA333EeMvEHgkEMqkLOlUjs4Zl9nF0CRGiyVkLSnj\nSGFCPRxkI37o16lyTvlPjKulAcksXn8mPIJ67Kg64oFvU1PHOqoD8fvyevRL\nddMBtgyqhMvkuSUj6UEEtmYMZL0ZqhO/DhtMK8zux598bk0UxY7XYQ54UGNA\nacoKgx+QUXhsej+iJiM3Gexn6V8leTT90VxLlIFFVXdr15CLzHYisTjWMn0P\nL9Rl\r\n=apEe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA9txmqjHXxAIBpHM8J/F1dplAwkqSRxZK7wH+SlHogeAiEAouNypV1VUSgTUGFGNcVY2F65CLA/O9HxX/YjauuNJrw="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181113_1542097555303_0.901157860326605"},"_hasShrinkwrap":false},"2.0.11":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.11","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"42fdb166388c1f209612215d1c46accb70b1cf2d","_id":"tstl@2.0.11","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-TkBxR16Qf67SXCfxpxCDYw+Ji1Mx7c7e/YRwvhOPrSvHdAiQKTl1awPUUxCyJQTszjb/lTslX/cgQNHnhs7PkA==","shasum":"a91c97ed59e0663b4428c5fcaba47618ce91fc30","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.11.tgz","fileCount":441,"unpackedSize":868239,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb6pGiCRA9TVsSAnZWagAA9MEP/iOafv0+p19xjc4sstnK\n4/+KpmMmjAgo4tRnbD1g0CWguxR77h79/IK0+NtLtVTRr5pSfwIDZqqz8bi6\nJtbthNkFgT9JbGnjen0iXIlqbsuk/t1BCvr7Pgv2r11ANj1loyA+DhY/07iR\ntw88x7G/HOMrQf7ibPb/viYf7TXAvnn6SNc4Gaa9lPojBdaPG1MGpPxAr7XP\ngYWimE3amjQR6D9rjXB7E9AtDT6olWzx48NC6iRHGVTLdv88vi1dEXeetwP9\nTeVGXCL8ltLwfjgBWeQX4HQ8vXaCrNHlm1MjO/J6ymzO/gzZGasUAlQkU/Sx\nP33foHLBQoa80OdOFewJQdKKEZxi2MpNsft0FRiAvpzhonR3EfPWqfR93RAZ\n4FlNEKgZAwH3UpbSp9Iu2fEH1KtqbOM65WF6IAClU6arrSWc/lEo6mnCQtdv\nmxnQHvuTnJF33jMPl06OPT/KVhz2bMIrb8AX5Sd52wMI4cS67bEoIpWz5eYH\nUbw91a+xgz4hgN2irh/MGrHUfeh6dXQB2ed5O7Ipy6jNHzJzR0qL62hDaGbW\nA+BP0dzWD1VVijrpiGYcJ4osnB5yPyUCNHPDSYnQECCGQpZwMLULSiw3YxtN\n+XSRsOOOjPEDHRWw0XhBbuCnJBsXdeCTOb6QNNxjsVs4G/RH/z0yRx2UOSR2\niHq1\r\n=rwPw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDm6NvkcSOpOVuBsww86g1t14Fb0T/Ta7xy6IoyLZAVJAIhAPPKWbLAjlDtj13/8OtBkf4YPGbO8W5qRQOxTWYfag5Z"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.11_1542099362113_0.12721538336644822"},"_hasShrinkwrap":false},"2.0.12":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.12","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"42fdb166388c1f209612215d1c46accb70b1cf2d","_id":"tstl@2.0.12","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-3nBq3BHb51xJWuHsvy6GI1JftyWd2Jgk1Jjg0EdLFh4LZXGHA544sw1zFE9om9vY3Y2wGMvp3NO6t+oWkIMa1A==","shasum":"a33259bbfa4c63a25c64d67d44a474c24797dfab","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.12.tgz","fileCount":441,"unpackedSize":868239,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb6pHKCRA9TVsSAnZWagAAxHIP/R+wVay+hYfvzmSkUt7s\nHMpjzr8jKCWc3Zrws1/V/46mwap+8YllILGophWm4bE/zyf4cN8x+C7AETIf\nJeg0eh9ujg1g+ZOCyAJsG3GOxClFOkUlWHUFG6s+mWso/5z9zxTmDH/iCZ0J\nD24oOxiPseWxEgVp6Qx2JJ0nAo3ZnHxrN8JV4xvO34Y4xD2SG5FVr4tt0ebX\njwI1iOPVx+sC9wcTIeyULhkWG5ehwNNRhsCgX6AByFTD5/DMQ0MhjskvI4GQ\nvBM6RHqBw9llfgTmj4jC2xeublgEjJp1BV0f5D39ftAw1+on98yA+Wn+QSXQ\neQ3RX2S77ETSgfMCy5nqrar0v67REPw3e5roCUt1vjvbcwQSoPAgtBHrXK5Y\nedvwmY0U8klHQnHm+jERwwEJ33g7fVJFxl6zrQGfFykl27GYszAy4DBkLpO0\nrk3Qu5hH0AsdBLDYpQXs7YfsNsNBTQFIaTlkW4aGIkUuDdnHruVZg1oIV58V\nXhMXm9WZ0ci1qusA/9uBEm9Y7P0JToKa+w376Dc5zovLie9oTkHgLEUZRkV5\nXw/37KG+rFD1HNqTBym5V/zoS3SraFZ9i0EIpQpZ70K9LbjOSVeQ+/4OJNC6\nniBVKToJbmFC0IRkH4Khh/qI2+t/BOZWiazj0Bhvr7eyicIH27vfJUaGkwjZ\nl/k1\r\n=OgIo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXIRyNZzrvepNP73blulBwdgo+llrGrqm7jbObllTnXwIhANwHirRQvkcwewRdNoQ9tb49iLGtp6dBE8jXza0J0ST4"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.12_1542099401926_0.8200517321548166"},"_hasShrinkwrap":false},"2.0.13":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.13","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"d179beb5a5fda27915d54f3ee09d8927eb34bca9","_id":"tstl@2.0.13","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-teqB3G4NQuZQEbApZqwLF82H7vm9gfTyPt72aLjIuOG47MLEucP0j+wjTrz0OSkELkgfN/Df19ojuSM7BihBFg==","shasum":"c34f08ae4c4e870c7a2d770e92abdacd4d2818de","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.13.tgz","fileCount":441,"unpackedSize":892647,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb6uIJCRA9TVsSAnZWagAAsCsP+QBb+TI3SQrAxRG6K/sX\ndYudwRFiJiSWjTSZefGQf0Ok18QiOJVt8iH7sc6q/WL5LhQ7djD11XMXOwaG\npKzotFQ+ibsdxFMVQfAGfidWDOhK1yCDKYldkmaloZ4y7HQjbcdpvS4bwj1j\n+lGEsnzzTZWfXNlRefqsFmt79BGNheVgOE3PLyjGBmQNKDgBHjEz+7LqKJt6\nD9jZaKF/8l0RjZeB34cxMpsY4/HKdqFLltrpwJRCR/WjYyQeqF70Ow+U0p5G\nDFGt1/zsITJHfNgJYbGPNep3AM9luTcHLs3DusXNB5YChCfllgYBJCIOits7\nHX8VTG4bJf5fWI/oW/5xI1ZGdRnNn4BL+XYr1S7HxY5UHDbYC1RjnZkWWNyi\nSiyN9RDTOj5A3Clea4tgjwV+VDP0lvwzs1jpttOXODPMhzQ/vSFaWtbdHiWX\nMLTR8IXBf9he+ZKDPSoVSnQpePf4VpGf423T3vRBJIjRsLGUQEEyyAMP6t4U\nVf2Fu0lUmakgjBrl8PXMQUeQTzm+/4EAkWQtH54YYiBCUV8vAVnOUE0omgb6\nZf9tA1OjXqb8Kt2OzAV3F/t/lpaPuNLBz0GjtJ17q3Fb9gdo/4QoenKv8m78\np7JXaeI6LjdhBCZD3C6DA011ya8JQOuNPmB8ICSmHxpHsivFc/JmhqaUSSC9\nl9kH\r\n=cEup\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzcFxdeF5fCSc5uliPd/PUcWviYlCk8eopxMNhUkvZMQIgPtuPvkJlAZftQbtFEC9QoaxHJsm/ycrAVoSLCGRtyzE="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.13_1542119944530_0.4901129888639695"},"_hasShrinkwrap":false},"2.1.0-dev.20181114":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181114","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.10.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"034ac6a63a436fb2d8d1dec9677e6aefe5280e3c","_id":"tstl@2.1.0-dev.20181114","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-jHfXn5HJVbV2Tx7eeelHshOfGBSYMBWS0qi37pjnKmDW0qvEtfYKl32emyhyrVHIjv4yBufLJElOQu30fBBMgQ==","shasum":"9692181390776c00a081847cfc9c7bf36ac3decb","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181114.tgz","fileCount":462,"unpackedSize":902402,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb64L/CRA9TVsSAnZWagAANJMQAIJ2Ja69W5B6JH8nL812\nOarMym8ZrCZCIaGfj7IeEGSb1VJPhipikTmrKbpSLjSQeZ50q3JMXV4D3Z75\nSW+o+fPTfDlxx2/vIA0JIhNx2Bd4bKQ279IvRNqz6ZB+dEsMjaqRJWb1tceu\nEXdalJWL8GK6mmRuqIfWXCv7jaSsVFc+f1uBm8W/dEFHpcdNzDwT0Qu3pWBR\nXK5u9WAzGqMETocFFRpKSrcEwep1dkZPdEcUMkLc1NmpeOS9duIQEmst38L0\nWyDHRl6ethE3S+ha9DY4EA50DsC9HxkaAsgLgwaq5TruVZCcrlACQBZLHK0g\nCCJEORFNv7ffi4T/R20LMeSHEIHOVrXOlHxJuRrqdiHzscHyWLKAi349k3Yk\nRCb+Zxr4B7zotcLgTmQrvVvlaGANo6N83Bf8HJ650U+gR9vTQ+lS64w7fDQd\n8cbrAXVc2ENAMKw95RDvH93d8Cuc+kEyA4aYFxVv13sH9+bsYRuj5V8Mi6y5\naA9JP5JSv/8+fkBIvotNZReauNFHl/pE8xhVzYUIBNxfb4WTTqgGv70FijlH\nu/eYNnGeAQSynUtPz0FXzGQuQ1jDFpRMWB2NDKd8Or+EoLzXWGRwhlXXDVZH\nZ8hO6n3ulFgWdj5NjOKn9feVbtZKnMQN7xsAyPquH7bM7FybKXwzU4pEFcCU\nxr02\r\n=1sVs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBi35QvtAZFkM6LsQ0x1t/M4WMoVcJ174/vUjGxSaqjBAiEAnO27QFQrTU+XpA67nNYYiIXLHVbaJ3ZwJbM6wXTa60c="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181114_1542161147652_0.36153828024010637"},"_hasShrinkwrap":false},"2.1.0-dev.20181116":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181116","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.10.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n> ### ECOL\n> Extension of TSTL Containers dispatching Events.\n> \n> **ECOL** is an extension module of **TSTL**, providing special collections dispatching events. The special collections are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special collections. \n> \n> Types of the event dispatched by the special collections are `\"insert\"`, `\"erase\"` and `\"refresh\"`.\n> \n> - [Visit ECOL](https://github.com/samchon/ecol)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nlet map: std.TreeMap<number, string> = new std.TreeMap();\n\n// INSERT ITEMS\nmap.insert(std.make_pair(1, \"First\")); // Via tuple\nmap.emplace(4, \"Fourth\"); // C++11 Feature\nmap.insert_or_assign(5, \"Fifth\"); // C++17 Feature\nmap.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n// ITERATION\nfor (let it = map.begin(); !it.equals(map.end()); it = it.next())\n    console.log(it.first, it.second); // (key => number, value => string)\n\n// LOWER_BOUND\nlet x = map.lower_bound(3);\nconsole.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n```\n\n\n\n## References\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Related Projects**\n    - [ECOL](https://github.com/samchon/ecol)\n    - [Samchon-Framework](https://github.com/samchon/framework)\n","readmeFilename":"README.md","gitHead":"3b8cc1602d075587fc1704f85b0ee230aab5a923","_id":"tstl@2.1.0-dev.20181116","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-G6EZh1tZit4krpsZGCT78f/b/nLCTqdGjgVqZkJFAmv0KjSRqTIafCGCY/FH8mVBDHP38AzryGrQWu/bLXrkoA==","shasum":"36c92ac0cf930896930bdcc3d2a830d1a9566a2e","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181116.tgz","fileCount":465,"unpackedSize":905785,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb7jAKCRA9TVsSAnZWagAABPAP/jCffzhT3U9H8g4jhgr2\nIv/1E+UPVtLr0yKHkdtD9SCF+i1eO/eDhYgY9cafQS0/Khy/WpczxckQDgpG\nl5h66VFPsjpazDe78/dc55W8Lfb5xJgUVUbrMiSm9gZwLL/GzlWvepsv6Q5i\nPwzvL/08maKyFw4yENgEpw2w0c37nlTSABtMlyUGX6m6sCGHPD+Lc3h+bV7N\nAmZrVK2ul4nr/IKoi/SaFhrFosF6W2FiBsio++jz5cdY4p+FkEnDYSZUmVcU\n/l4FxUZGaoK7gn05DuZkx3DHf1fKUd3FE0w6QicqRxl/ApTkHieuKNkcWtR7\nHMmyTiZLZiyK/1uShffpxEUjTOYjx2t7PFHXGAJdr657ybhrbEqEoxdAGz8T\n6D3UKuQ6TnQir4Jcj0TP7YjWb5af26VOdcRaKIew0cmzbD+rhRSBRTBB3r+b\nTSw2YWR8kPllwymNctafQNOib3rWy+xIqwXr1NmnD0VZIkbJQY/w4dOGfwdO\nOs72jss6v4W9YDfTcIdGpNoY5eRNdYteUfqXS2XTlii1hcoXSQATSV3kjbYO\nCbQuhoW8cNsYmWZh+rbR4jA3l4NS5PcKdYA0e20xN+LNx4M57kXy7JOaN/QI\n5HYmlYbIbPrQkm3fODMN0kq7GwIzKXb8q6rbP767jOMykzmOHkBJYfYmYJST\nkfY6\r\n=R47F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE03WQu/fFEyiXFxALZsA4H5jApLB1+1+qEJ/paJtmimAiB65DmgXmr8MHVYOm1KsjlfEPw4obt8PcUf4vVex/lBQw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181116_1542336521922_0.372026239067319"},"_hasShrinkwrap":false},"2.0.14":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.14","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"8cf15c040eb034ed5518dbfb473d699f89f62478","_id":"tstl@2.0.14","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-6o92+z500sf7+hYlBR44sdjjhN8mEKm/df+bHBQnV3HPeT+TOuuoNWqmx0I1bbwqdCSxIf9MihenVcfLX46qPg==","shasum":"116b181b6937106be151f2ee4b563a49c761c12d","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.14.tgz","fileCount":441,"unpackedSize":872168,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/jNbCRA9TVsSAnZWagAAkiwP/R2OJEUisI5ftckT6afJ\nXA6BeeTFLRPOM83s8SU9FZ5lzBFfb043pG7SbsBcrLNtYgjPZijRB/g5vLGT\nK2aMBEh82uGdMSDXJeUNffnwWBMjVeIhBB2ZBYHXgsCMTnv1VcGUAQrv0Wrd\nAZJ4T1l397zzpn8Vh1cJ2hfBuxgV88osFjtvHBp7uuc2UWalXRzcDwkhX2G0\nlaVTmGbv6dFjpypPKi+JSPMFjaz8BUzl2Y1jAe5utJZfax/a4oy/8WIGUPfX\njcJJt9gcvSG+lhziTb4UTWAhEbHEy+0lhQcHSzKMZcA0Uqvh83CZYinNhI2e\nbnalDNYSwPb9LbgVyzH15AoXBdUe6xTmTS6ywYPIAUHdVLZgqwJMTc7ejln3\nmUhgYW4/inrg7oe9MeDLmmmaPRfClEepymjaI/HFuUdAp8ie/YLmwccBvXO+\nJgtEc8XaSZF6j00vX97Ja6vowOF9P7wuC7fFSaUAAmOXRxMmYHtDw4NlrAcP\nO+5E+j58+rupPdt2hs46F+37VWdrB4DhNrO7o2VgiVcLBiYF/+u4lb23AH5m\nIJuRNv5HUHQ0dycL6HgNq696eIw0nnd/qIc8K4FvSG1uYuQxSnDnhTVr4pSC\nj8Tjkwm9ESgRA74BXbLt24qqiVG5e8HnARB6QsN1tcVeiJDfgwtYvNvbJFU+\nIoZ5\r\n=rJdv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG41FjM3ImB0hDEZ+Sliwg//1NRiqZh4a/jtAlkhQ15tAiAdXbKFbmujSUWAr2CfhIXOy20ADXNm0Umt8oqQFKjiUg=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.14_1543385946537_0.24034975937293135"},"_hasShrinkwrap":false},"2.1.0-dev.20181128":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181128","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.10.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"72b33b6c08f5c823edd0ddaf0ca0b44c0bccd693","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std.experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std.experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.1.0-dev.20181128","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-s/AJwiCvUh8a4xSXF9P9e83HV2tex7PE5mwejpinyrT2Dmg8eBieoZDsEIPCMsmDdhC33+cniogeBjzknRVMgQ==","shasum":"c88cc62f1287e2830efdc331a5c96ebd471ca26e","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181128.tgz","fileCount":465,"unpackedSize":926827,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/ntxCRA9TVsSAnZWagAAQ48P/RvHu69MJ0sjKRZDrtKx\nwHQS3XxQCxRJldXzkeerHz4BQMZt6gxRv/9Vd+b8EZ9eqayuh8qK1pu3xWk/\n2bZrkT59yF963v/pSSgZU6dBDbBFt6e4nvELMGQFCjCI/cPZKUh0J9NgtGo3\n9kybhgIajlo74drTtH+5yWIsiMlaHgvdYifBRM+W+miCjAtSgW5cIq6Ot2SE\nRq45LvTLg3s1LMVKL6jiQrJd5QIVVEuEpybAkIYuUr+9Hk/04A/si6EgzO45\n0+aeSDIFYcFc9pX8EYh4R90cpEKG1CwKNfeH0Vo1TH+OFgY6rQFghsix4EXU\nZJ9kCpFJUEIdSyKrgfMcmxD/9HPLrmW49+sXvpRimzD0eFTocuGzzrWKBiH8\nJruiK7gTxuzvtwKmnpXjGtXpmytRKUSu0bGFfJxEKLSa52DrYFOe8K0Uv7gQ\nUU29sw8e3QrMB14WwU4odYsfZ4qtsi8C7gzHL8B9Uo02j229G0KFeRV8yVid\n8Y600o4Ke65dmP4XzKzTFMia1ujayg++rXh3TUDAtVTVQB7ZPsemr4atz1Nu\nWDCQqcvyx242ZMUrlTE5o4Ty3Hw/ybjpOdBeILFCKROTXPttUQEeZzUyrFqD\nZ1S9HNczARJCNZJJB5bTOS5Ao9i8Om7Zd6Bc3VzvpaoWyc24pLcqEoxp9E+E\nBFh7\r\n=8bgk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID5zQuVueoMfwNxDfdiiMN4VQQL9+t/ZHiwfOdf2RbD/AiEAgDMcZX6h12UwGBQPvHhCDF/pzuy2RTGIBvIrWrtWkAI="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181128_1543404400422_0.910088353018246"},"_hasShrinkwrap":false},"2.1.0-dev.20181129":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181129","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std.experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std.experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std.experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"10743dd968f6b2f8ffea1573c6e70df839a2aedc","_id":"tstl@2.1.0-dev.20181129","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-o6/l3VmJA2tXDh/kcCSVSbXMgJT7eDihbzUQhx0n3Gauuxh/hBjPuBOvFiRk/QRcxcn6+6b1zqIw9KhW3CJMUQ==","shasum":"fce25933006a1faf9468329614a7838cd32b83bc","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181129.tgz","fileCount":465,"unpackedSize":944892,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/9WZCRA9TVsSAnZWagAAsGkP/3WqORFWg4E0FdoskWE7\nJquw5FneALw9XY4GOx71v+4ohH8YNiVTomZBIPO1iwFIsgZLzfAiMWfvRduo\nnXFBJdwv3hmOHwn6tvsRTCRk58eEk46RpDB1IpLXTCs03L/bvfkzxh7deNyJ\nVvrU5ra+oVSQx8/4XUdHtj5zPKZJECa1CT7FMXqiFEEupfyCW19+NbcOMt++\nZ7yfSAWRFjs7/+gbxT3IBTaEbYgHM0lH7vSLherURZdeymTVavYYuur9Z6AE\nDvB01ExDhSoxUdGml21+8Tv6GnW29VPB53BwuYoyMwpXGAFIA8sp/q4h62e+\nQ8xZPF1xixB1hxa+GtWvLt1jQGRafdtY7CH4DviPmsCZCa8vIQxEzhRMra7N\nB3a3XhDjdPMG0yJwzkfkC25K7jPjnM81cCwEYM0yMzOXWYVE52SRijSqzWEJ\n9k3N/Rw1Z+KGiGrRMpqqvIWWbjJ9LyJEyj/cff6dvQSS/k7KSIgR8cr0f7/J\nO1rj8SHB0CsScMt8VoZeGl9DxBYW2FxYpxfy3DDWbxYaarg6HHfDC3we+O1E\nMX1EWIrUgLmqB2fWYuZfeM/fxlGhhX6T7DkzA1eS0Fye8njmJvCbHUltTfYy\nUQblelrrf94oZj64hXbfw7S438frVptBGitykCSooBpUUmRbU0wTU5oNXDGT\nanbG\r\n=lRLQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAgL26ESOjPDf4hsf0LQ2Lba45Uhdaj8GXUuNFMzkkU7AiBHtI/fdcXE443TLEVdK92nVy4iM/V0/sv2KVBhNg0bVw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181129_1543493016471_0.2561170133325992"},"_hasShrinkwrap":false},"2.1.0-dev.20181202":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181202","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"bc9cd3b4bdeb116a8e3067647806e7ddf86b220b","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.1.0-dev.20181202","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-naBH22kDHPSw+Tk2IxL6bIYcNUaWA4kQCLh0INqRRXVgUjpvncK+bmUSz3YXdAmTIV73o0CABk7iTGsoKWsuFg==","shasum":"5676151555b5a6f8481355ea615a511b058270d6","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181202.tgz","fileCount":465,"unpackedSize":943474,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcA7GsCRA9TVsSAnZWagAA+qcP/RT8vYFP1vV/VSw+IiDQ\nddk/bJmApZ4juSqY2Xh9T/SJDDxHotVU0h+c1cd2P+MVEGbDkqyqtt7MkKlM\ny7tDmN7e5+8eYC5UdivlcGVi3ePz2ehmbQCHdAGpeAojq85JJLNFpdLqYUWg\nlBMBHNf8xid7gdwgS+3rJ0uiff2BAI7AF/rHQjVzw/EUDq/2gZ4VKtjAeN01\n7xK62vEaDxYOAg1W8bL/0DFAnTcicWwggfxp8CvvKaNtSwNWUXvjw6SL9FHi\n7rOMt1TALECsgrO0RBZottHiCW0TQqDC2ZzFAOnB6uQwwLfhIjUMKvkvE5uz\nYzfhyh695t+IC8Rc0P5p5+e/5ZzgoQ3WOkQXLveA8RfalnG5QxJM4hdwQX4E\nXOrkvszfH6MaOxDt2UTkfNEArt48LgOpK1bun1Y7olvbqg5VhvXXwdRFmhUL\nAIU4VavAS7TQDboPclE02W4/i1Yv+0Urzlc+YiyL8zCblSzNg45vl3Zapw2D\n8OqN9pqCRCS1YFm1ha7vSwUZ3o2CAXMMTpu1tgC1YPetF8CqB5FHTZECHgzZ\nsw4sJyLtOCf28gG7R4pnaOfWgZPNANEHQ3AD5cm5iWuUfrsw+Misj4WOFVGp\ndfGjG5sZ6gcApqONAnHeDIreJfhSmMJKquhdDNqMaYXvk6qpLM6xFCxSX6bC\nGXjD\r\n=PSmO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB2QPweGIyYhFhxlw3tItRycygK3Z4oNUIfvJX+/l7mGAiAhTw5nIHJQ1cAO7nI19h5yfvd5SFmynKte0WZxTVlRkA=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181202_1543745963430_0.4783127985648672"},"_hasShrinkwrap":false},"2.1.0-dev.20181207":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181207","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"ad1c2e30588cfba9359d953d57c48bcb9fe34a00","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.1.0-dev.20181207","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-RTfEilyeGAdzflO6PbnLvD8KFRKMOn3BHRq+9WEDZuLy94fm2fPjfYYNpGPmz4yys0fTvswAZ7DNi3lHg1+PFA==","shasum":"77eb398847f57b82416cb77328d4b97a12037570","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181207.tgz","fileCount":465,"unpackedSize":943405,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcCol8CRA9TVsSAnZWagAA780P/2oWeD3Rw5R9sa0n+LmJ\no8c4FpMTVk37ru7ZH9RTpFmUcL4XY7+TLvbC5T48wzV+hTYTetx2R/hP2JkK\nFyK3+yLQ6vSfXyRw87b4IWVsJP9PcPzAVh8ydFKg4AuFUt3zFVji7LnwozO+\nvnxYQx84A9sQbvKazX+RIkFUxukWx1qpqAZmhUUAQBMWpZLmWVMvSa/Xf4CA\ncXyyTxCUE5q5EVUcrRVQTUUw51rcXetsTaVG6LEptrmvA31JeZMKdG5CoQkO\n02/TtStlA5xsv/oDG9N41TfbUYUBeCalFNHkmtveFI1+IRE1I4n9hJIir8c3\nWUQsZrLNiRKkgcAA5KxZbFmyrU5n50WH+to5xgcD3kSR66MQIC7KYYswwTtX\nYWUqRQ/gODGYud4xHx+q4bwdt8M2K0eczrTaepd54Qgm1PDW2dz4PkpyfR50\nBpuS7kj0tZmVZd6HaMTtUL3yGhyx+XdsTnvL7AYVjQ3QxH5noIMN3hXM+v+7\naA+gCHAMGnFss989xC9oP0XpvvHZGipLmX4indA2ogMpAFM7tE5laiQA0a1E\nzvnB1Qmr5B+moa/fpYcqNTW3dym3kLN62oRgh/l40zrFUYiOpdlsqh6O3A/c\ngL6LPKtzZZZhYk6rMf3Db/46vGhpWEMwALrzasykPkCBzIezTgZCzaGbccbV\nA0eX\r\n=qOZp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCeRySQ3u6+3MyHHxQh/jW9eSL3Z/14BWpFdBZ5jZjlKwIhAMifvqD5sg/sxS2/fB3dpP4GCPNsc+iCBkJNwptuWXLt"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181207_1544194427114_0.9272852158283968"},"_hasShrinkwrap":false},"2.1.0-dev.20181210":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181210","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\n\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nfunction main(): void\n{\n    let map: std.TreeMap<number, string> = new std.TreeMap();\n\n    // INSERT ITEMS\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\n    map.emplace(4, \"Fourth\"); // C++11 Feature\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n    // ITERATION\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\n        console.log(it.first, it.second); // (key => number, value => string)\n\n    // LOWER_BOUND\n    let x = map.lower_bound(3);\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n}\nmain();\n```\n\n\n\n\n## Appendix\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Extensions**\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\n","readmeFilename":"README.md","gitHead":"2c363ec72fe135746d4f7c347ebb10def2307217","_id":"tstl@2.1.0-dev.20181210","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-TXN+TAVVWR5IyzpfIWhuZB08mJyTEr+3B6TwBUQZuFYTIcvBG9c9T73leyW467bvC3dauOGZP29PnRZ1kGe6tg==","shasum":"586f1ddb0326b68ba85ed5648d4fe414c222cff6","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181210.tgz","fileCount":465,"unpackedSize":922172,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcDdTmCRA9TVsSAnZWagAA3osP/2bLY7Rvrw1+PcMrNe8/\nRHcTeqD6PPNMhTEl99k9gq4JjTPluKoeYfWwILxj8ZnsJClIrTBUEasCjib0\nHBMH0Y8in8rJy/FBKPat23RPbPSGd9DV6IQJyyBtNhdGKqT2zoGCg9GXZiEs\nPXNNGqEubnCbC537ASTiOm7MSrX6o3psXLN3lXQPP/S2QHn3VuVNtnDLI+Ea\n2qgWFjYkQW/pavbNkgwyGmI89FdDzjK1kYdEwgXlHyAQqzVvPbTKs7BAw2rp\nzrbsi5W6kTbDLUnyPJjoZ58JkyFzCOqqI6zVc0WIpDkcS7PTf1QyRETkBJrz\n8IS1n/uFRQzdYsuHAmDgrx4oIQowQvx+r/9Xd/Pyskj6z9bW5xpHEO4h4pl7\neNx+j3r5A6V5oVDRYJSkZzaJ1vSyV7811Yv++XHDDoGFBLnJHflNj0vO/5AP\n13IbwLE6bveekOlwxDkSpETgkyzrn1QI8ujYozAfWcbBlUHh8iqD/RiZp1re\nXwjhNVT7us/t+Z6Bc5e6KYtiBIOzyJc1x8vmykLwm/xzI7zjNeRcX9y+K3me\nfEFYF7++IQUMcTEjrq0vmjZs7mFj9rn53IpseFP/CcLIKAADIEyx8ewaxQDx\nR58kN0ycOZYdo0Yjk0t1zDcvENoT8ovVLb74sqrewaajC5sAqAhcX8tLd+ef\nMHx6\r\n=GEj+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCaenb8sv+5UbKraSRb5jG++MfYbqSSpqm1yt6HEVFHmgIgb3nM3bD3ovAIot72mzBZtDXy2yQPmnRmPzz084vRxEc="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181210_1544410341661_0.7425670911896294"},"_hasShrinkwrap":false},"2.0.16":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.0.16","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","clean":"node build/clean","test":"node test/main"},"devDependencies":{"@types/node":"^7.0.55"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"BSD-3-Clause","keywords":["tstl","typescript-stl","typescript","stl","standard template library","container","iterator","algorithm","functor","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","IComparable","IComputable","PriorityQueue","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","exception","functional","utility","thread","numeric","special_math","pair","entry","sleep","sleep_for","sleep_until","mutex","shared_mutex","timed_mutex","shared_timed_mutex","semaphore","timed_semaphore","TimedMutex","SharedMutex","SharedTimedMutex","TimedSemaphore"],"gitHead":"4fe6c4c1c52df6a0e9ebb80e3d669280e1571fae","_id":"tstl@2.0.16","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-06j8LiIdfLIKH7N6RdcTbhFlCXU18t1gKTFk+fHV45aX6nwCllnCbNUjt5uLHhSSS1+pSZWf4hTNVZPUJFZdmw==","shasum":"52721f22aa0e33abf296120e3dd5f24aac2a8fc4","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.0.16.tgz","fileCount":441,"unpackedSize":872321,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcDgf3CRA9TVsSAnZWagAA7WMQAItM2+t2FY5MjTxCym23\nhNbbme/VVqFkkwhC49dzcV8DmhXsF0zDxuccFU/cnFGNJsU71wc3xngk2Ie2\n6xA0Itipdx7k0qH/wENdZHr0gQ3fouaMNSzbWARte26uQX385UgKR5I6X+0p\nJZuV5JkKr4SQHdyRCFZIiepwwkFRBb1D8lES/zytUjX3BnUUGhYkKojNTTra\nUr5Ex7FcIy3k4/aF/TK7D/CUEBbpg2CbFx2IrZECoRBIGCftH6mSSISqNVKI\nIhR+Qmn6P4+rtgV+fn1trV4q7vglea4aJox9uTRC4jvgldXGFeWpCx9vLzMM\nH5MHVNUYZF4GlR7mwe5pZUG91gz0aS0uNJuu7BbudSy2RwVFTK8wQkSN6oQE\ndRoxyT9NbVMSlsHrCwzH+7gcRaBMHb8rNMJyt6QqVYPh024fXhlDBT6RFXN3\na5JgFzSseFT0nTwtvQ56OICnsOA6PVkZfH59ZpOT56fWnIjQt2M4sX14y8lO\nlTK5V8s3FYPLx00HydDkwayjCCrSvuavAC++cGbdO4JoUuN8Fp5MamY3xF9j\naNQTeGGTXW0ZWk+AS3p+Uvo5t54SQ2pWYLQXTm0PjQ5wureKExHAcqLxf+Fi\nZ4oBmR6osF3YWYH6JVEndVUzXIRYH5ZQOsPS6DUxlQcJRI/VRwZpjhyxU/is\no2lm\r\n=BgsC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+5ps9G7kMsZdCoZ7Y+e665FwgmQwLN9APfslQDu9BzAIgWTwe3tOCFT5pbjYtP8+D2SVF1QBgqLNjYpHVmkQZbdg="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.0.16_1544423415077_0.25086477213904956"},"_hasShrinkwrap":false},"2.1.0-dev.20181211":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181211","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\n\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nfunction main(): void\n{\n    let map: std.TreeMap<number, string> = new std.TreeMap();\n\n    // INSERT ITEMS\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\n    map.emplace(4, \"Fourth\"); // C++11 Feature\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n    // ITERATION\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\n        console.log(it.first, it.second); // (key => number, value => string)\n\n    // LOWER_BOUND\n    let x = map.lower_bound(3);\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n}\nmain();\n```\n\n\n\n\n## Appendix\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Extensions**\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\n","readmeFilename":"README.md","gitHead":"bb8d3aeb59e5a18f8b216641f27f72ebf54042bb","_id":"tstl@2.1.0-dev.20181211","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-MQjpUenFqXjZUGp4/swSYFXmaK5SnrRw8sRjX2fBzzLdpUoGjdssfOLwaD8tE6wkgVbi2hfp4Jek2xXNwgD1iw==","shasum":"0f69881ac14551c8c6724ea3e0bd9bd5ed8e3a58","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181211.tgz","fileCount":465,"unpackedSize":926785,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcD1sICRA9TVsSAnZWagAArnUP/RA58nO+4yGICl1REm11\nXutk7g15xTa/iC/gvtfnzM93NQ1gPm0nOYW5VNqZ1Ih8iVlPDUAm3bhoLXoE\nC75zi350nL5zQEspJrOMxBJ/kxtCmVDYbx0oTqmxS2q7tIlJ2HX1fafCgwdj\nDol0YFmlbJZbUuBnpUgGh0D+9Lm5hrwv2LmLJVXVzUi1cXpNNr9FkYwHwUTl\n/hPJDlTJ0BoXBOVrzhb3/qWmyrwIN+lsLCTv2EV0JPwpXLqeU7vD0Fp+K6KQ\n1CKF/yeS/i+HrBLjPuzZH2pDpfVvm2oNsS/6ZN7N1kBm8FeRl+5vPRtZgnKj\nHnUdUDXGaL75FaezmBnwfCUR1UG74dMTXo+VMiMLVyyh/0EnPdo2SaXFt1CK\nZ7L0Is9Is4BRHBCkP7DzqyBRY1SJPP3tVdDtuHZdyyb6gURGcaWSLHONyAyh\ngw9cQ6ObutDulMKWzFTQWNmrdfU38oyOFWxkRXC6oPjvd8+BHO7uE/Jv2OpH\nNpTMq8f1lxW1MTj9og/Kfbmfd6yzMNmiCrPcdXVcbU8VAKPAMgc3O7kxGh5t\nHuHSKTPURI2YGWfSQdL2/Vycv1jQ6hbyZGt6aDM4fmIpr3Jp2fzhiE5AZkQl\nfbgK9qy15OpXqdq3PUf220CpHkdSuaLT+rU4jGnRh8QPXJtIvtzUy8JGMyUt\ndDEq\r\n=/qoH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2ZB/Rmbt8y16Xh86X6iDbtdIK7D/8mKieGRAIJYxJNwIhAMV//pXAzf7lb/KGiomfcAXEfLYM1eON1FcZx3XOJhEz"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181211_1544510215214_0.05805818277111929"},"_hasShrinkwrap":false},"2.1.0-dev.20181212":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181212","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\n\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nfunction main(): void\n{\n    let map: std.TreeMap<number, string> = new std.TreeMap();\n\n    // INSERT ITEMS\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\n    map.emplace(4, \"Fourth\"); // C++11 Feature\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n    // ITERATION\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\n        console.log(it.first, it.second); // (key => number, value => string)\n\n    // LOWER_BOUND\n    let x = map.lower_bound(3);\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n}\nmain();\n```\n\n\n\n\n## Appendix\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Extensions**\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\n","readmeFilename":"README.md","gitHead":"531c79da6408ab30096709875599d6dc199caaab","_id":"tstl@2.1.0-dev.20181212","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-8P05sYp4lv/FuiD94E1aAF28fWOJlGfk+lPGMiVJhZsqjx2/m+Z8l9pevrGSYBqVEXzCc/rPkCUDVMZgqWH8cw==","shasum":"d51546f1b9fe984514cf80611638f489276cfc91","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181212.tgz","fileCount":465,"unpackedSize":926582,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcD2QHCRA9TVsSAnZWagAADCgQAIm6YIMs9dWgkEfRzkPm\n94LkXHBflseEUzikncLRwmmyJ+1xd85ew4BP/p1CQrkM9rFAJ63UvyagrWNR\nwoEQKh5U1osSBhEpcFcUeDYmwhUpN2uMRufNZhoC85n4NeWxsAknWRbiai/e\nIOv5ud/vnGdTLiwgyHEfpDimRnMm/DY9KkDCf2q92+f3y6R6tY/Jx54xY3ia\nS3siCaQWKFlVJZ4T1g36qemuaUc6QgvP+mTFwLa2qMDqEz3kYLqtIxhSaXS6\nwSsBMIa5+JeQLRQgTZM5kUOGno8a8KITXi7/HCXw7YBd8Bc04jmLP05gWEjD\n3wFJM2coH4u1CCeIsJIhyMlbi98018VHIfFrwgQj/daCswYkXy48/96nhixs\n0r9JMGmbkvrfWWksez+K4EufKX/NQeKks4jCHm6Njd/7K2d3eHEAQ6Xplibk\nwEVPh16Fl9oMHzTxQ8BuaVwVic7V/i4h9Ugb9O5t2CZdunmjT+xuv8gacr6G\nSM/9JsYLBTL2OcThYN9yZXogifDPhw5xR6pDJK7CYJDZAYtrHGp+htgzB/W/\ngrI3QbY+XxB3e5P3tQPAmWHI67IcMX/NN3HXh8L878UH1uXPx3IvRc+keFWY\nEj6vORYzN6KNTD9Q7n9LxTBBXQryEIfEzYNE1q5Jqe8u2hCMSa8ei1OSdJt+\n7okP\r\n=2449\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSbOsAkcxTsIIsjBCJxcR5YTK9sViKVln0Y3kUi3/CsgIhAIUM6o0oqOuBE7P+kFsRu8zjE+3JDrFZTpFsl4axMQBC"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181212_1544512518853_0.36739145055466804"},"_hasShrinkwrap":false},"2.1.0-dev.20181213":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181213","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\n\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nfunction main(): void\n{\n    let map: std.TreeMap<number, string> = new std.TreeMap();\n\n    // INSERT ITEMS\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\n    map.emplace(4, \"Fourth\"); // C++11 Feature\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n    // ITERATION\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\n        console.log(it.first, it.second); // (key => number, value => string)\n\n    // LOWER_BOUND\n    let x = map.lower_bound(3);\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n}\nmain();\n```\n\n\n\n\n## Appendix\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Extensions**\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\n","readmeFilename":"README.md","gitHead":"531c79da6408ab30096709875599d6dc199caaab","_id":"tstl@2.1.0-dev.20181213","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-Eu0K2ZwJgaZhwc3KG8t6JLLe8qVzwFeURTGlm0jM+2067e+HTxiKqLE+/NDTllxW+cd8d9X9NQhdVXt1GWc+MA==","shasum":"175f1be90ad6509cf79d61fbcd9bb3e86c4d09bd","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181213.tgz","fileCount":465,"unpackedSize":932123,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcEJyACRA9TVsSAnZWagAA2skP/irQ2XXXKXPJIl7QL9ic\ntPX6oE0mwyO9PKI6HqzjqZriLTRcukq07GCrANKpw3FXPPmIycqnqEj26wdJ\nweqI7t9TyYvRh3QrwJQcbyBraVj0dxHBrJjhOk6uxxIiJWZRBCoaNKf09ca1\nNMhSF1RMkUOShLs4DMxnyKaoz3dEV7YnvGZyx8D3vGYiNcpqB1DHrV73wOsz\n0PlwBjXn6QLw2b3kHK5mUqRbJmFti9c/9rMslhKqpeiOdta9AS9GoIzZdkWc\n7s2x7lp3mGo7pUVZNZA8YQusK9Kjn0vLKbdSfLUKEDZAXBA0j9EftWkoczbK\nHtzHxQ2SB773CLRkcOGf6yWmKnAWtSYh/E2yxauMKcr1ks6cjiL4u0ZoKpI0\nRGQQqgqBs0bdFBTUNqUgi4bcuP6PwILH49ePTQnN531KnTW9xmVVkzHTmf4S\n6rFNRlzT/nspL5uOhJBrX4aAKSWKMBQrZYllf/UEKoo0loHYsi5MVWPNE98S\nl/m7TDL1rsrjEqCSjfI+479iYiwARGv51MCSMWAOM2p+4w96OF2G+Sg8BOa5\nX6IPmynbVV7W1F6l4EBNRNj8fA2w//EO/fpCIcGij1qSZ+11mwM9OnguVgEx\nASKKcHcLT0iKlesGKVjbjwWT+7t1ZuC2Sh0gj67fR+nUkbVo2gvDIOFho7FY\nUdJw\r\n=lgem\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGQyI2LZdgDECvrjnTLsOv6ZBKs+V4DpZs7GNQV6zqU2AiEAlx/pEfUfFNZR+s4l39XWqOBIqHLiMjh8vkNo/LbluLo="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181213_1544592511390_0.2709158690555762"},"_hasShrinkwrap":false},"2.1.0-dev.20181214":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181214","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"29b52552d0e327e4efcf8a22cf2b963497fcaabb","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.1.0-dev.20181214","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-8hqtBn9NaqGAM4l08I8FNo1QguR81+3hCLUpmlpdX3SAK+dntBaCxuP30z9Wj6MFxOX0Hnx4MzI4a6k/A47HjQ==","shasum":"985caa421164b45253ac872ff9da68c5c24fdb19","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181214.tgz","fileCount":465,"unpackedSize":954927,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcE70ICRA9TVsSAnZWagAAXvoQAIjH6mwh4W5U2qVoafuG\nyQG1oaPC+OddeaPlEyw94Il4cM0a+kcbee1nDk+1NLoJNiKUaz2SuSsG0Vxs\nZ3uK6DvZC4oUakumAyymzh/+UtbTH3S14k+Y4ARF5QzobooDDIB9we7VWl9b\nWtS0jCBvOKN2IPbddtgyfHT67HO3QlT5VkxSrr8uAPu6TG25SWFGRCieCWsG\nsagVbR0jMV3FI+ieIaI/7MldDz+78bZcl5tC7A4fUFTsWMcBAbzsuen6KUkw\nbF6Ohgulvf4WWcnrPofPzqsXCzh2PByP+RG75F/0PWChF/dNV5tsHxuQFc+o\nWFQYs0b0REsCrBpm9Ujk9uA4rSO8az6Efpbyb/+pIqvWxCdTsp7LlDzBtxEV\nutF4IVHr7hAPsaYCD29ZdDs89uFSJeCHC1vjAg7wiJtCkGJHjowGLTaM7mP9\n2Lr9eutZOHLaZ0FTZqJcQiFE7bGUvV2fiW2BsQOtfqP8F8DM7pDVdYCDDDrP\nrZgaTOOKj5S5r2l+KokakUeWweTTCuboOKGHa2wYcbnubDo5LN8RguwKbbxr\nBobD1mzffcbf0Fs6K6R45wey9JhsuXUtq6aBwKx+veJ0Lm22LCEMhbcJORVw\nEaxEb5aoSvNrTuyFP48lo1SmlJCb32v2lLhUWCeRpc8TGd6LaPpfVi7B6t4f\nUPBn\r\n=2LaU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCiKh4RvlRMyKRY4D15YF5M0Sjll/TANS1+7kCoLyzsUQIhAK+fC0K7ndw9mnLHVEZFl4GR4JsMre9vpS1R/kCbuJLB"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181214_1544797447603_0.6467579689232856"},"_hasShrinkwrap":false},"2.1.0-dev.20181215":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0-dev.20181215","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![DeepScan grade](https://deepscan.io/api/projects/1798/branches/7800/badge/grade.svg)](https://deepscan.io/dashboard#view=project&pid=1798&bid=7800)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"29b52552d0e327e4efcf8a22cf2b963497fcaabb","_id":"tstl@2.1.0-dev.20181215","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-Aakfg8pjKJ27LzS6THIBZ9VTBC296eSMR+X8B2Dw8nW31cyZ8xwd/bgsoC3rRqvtUfdaxQDW45pz8SGd4RD0dQ==","shasum":"c0f0089377aba399450ca023c758c1871744b775","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0-dev.20181215.tgz","fileCount":465,"unpackedSize":955337,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcFH6UCRA9TVsSAnZWagAAev8P/25YQXGLCxMkzmi2c5Gb\ndiCjdnWx/ZdsPRgIgdFklaaeJ9d89OJfu8RPbrVUCRcyXQNUEVApwrwkcF39\nwrZt90LinefNsMavzvKl5/x2TYuenG2hhMt0vl4764FH1xDW6Fd5QE3C4gKa\n7f2Y7j3/kcYMiZzSXNKd5YHBmku6+b3ZlXajyqNSu93+cGEGO5rrtykKrBWR\nc6Sd5+d5zZZmd04OBsJdiUf3yuF0TjQgGKuDhkgoeLzhieAc+jUhoU83MmHG\niNxendTojYB2SAb+eT2tKaR5FgwlvChYNk8ySzLXRLsjRgs+9vQ2buLXTUyX\npTubigv4tKMDfOZ7iVDXvhRp3dIKL03i9B4Bdv4YdRVUSkSARzBdcbsjSg6q\nTrNzvYVa4ud6R+Atm7k6NlOuJ29lFosHCHgUPu3TsUWO6UhkgINlBfXvZglU\nm78NO/AkI0d7gKC4lXB2QjGlV9xArUpIK8OC1mHzx6vmb+i7Sl8Ai9kAJkEi\noZ9aHTdk749yxBsoOVtT6fwaloebNAr811Qslab1Di4mC48B7yzos5J5QFkT\n9vT5E23Xuh0EZVwqPbkbTsxPowfNoKrpjkWYAfPnk7pr8DopvGc7QLX3HPQA\nIQilmJylUUMFiESfLDDlD0U2cldUPeX/nhcc2boebBKphZwnm4geYTmr+3Ck\nJZKG\r\n=YIDT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGB3Vs1A4H5Bu5Zi7OhHee84BoHSauB3y0DxlZM74vZTAiEAjhmEQOe/HyVNxP84F84m2y+A6UTu8+q3HkUUzqlzMgQ="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0-dev.20181215_1544846995617_0.9261216608472271"},"_hasShrinkwrap":false},"2.1.0":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.0","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"29b52552d0e327e4efcf8a22cf2b963497fcaabb","_id":"tstl@2.1.0","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-Zt1YD8EnfyH+Q0LYCuzRiSqpCIQNj3kXKLiTNc75wQTiVopxE4x/JzRYxX/AbtLawCzzWv7w3izbOh2Ni06lyQ==","shasum":"e9f0d9d369158402b12165d4cbbdbfcf09f6d36c","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.0.tgz","fileCount":465,"unpackedSize":955324,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcFH6kCRA9TVsSAnZWagAAQBMP/2oCfGqHvyD7e6YArDy9\n1wtbfO7uLXUpf+o10BOhKgktJYpis7Ix/QciKSXK7oxGNm7kJA2A2rRs+8xB\n8EJufnD9j3MrzKslDB2/kFyFNUjgQD14KB8MoNElSHSHfFVmeusVYuCOp6zr\nv/Q5xD045oavHTb0hYnP4+uLeQSxfNS59v+G38p/x0CDoKo3U7xW/5GDRiST\nUL5FHkDkMoW9B0PMmJ29hRgRzXs1RdaybBcaqA6bLgssXKjH585/qC039RGb\nL6fTUtzGU5Fwlh44wFDeoYllMu3w1vMV62UdAUrB3n1LCVD9rjXnQp1qm6DZ\n+ZR4F9Xlbs4sQqf+Y8wHcwvNORMYA2wlQlQcgHJ5lNyjzVWaTalPg6BEjf7w\nRhfJcSgKKz/9xW2hj09IralGV48mV3seYyLkhDbLqH0moPVdq/NiV/D0BuD0\nTx+/2p5q6Gwidpjv9RF+74+IqhCnzQEto4T2I4cDAvQ4EkdPKMvE25PAvvqw\nfrQdtjOd+Y3RJqJvQuxgZ+py597oCy4oaawZBvy/QLziawsd139F6HZ3oceh\n9nMPIasERqUiWXqC7kW60TE8l4fRknyW0Weew98+UTncALkPlm3rSZPLF0lR\n7t+mXwMQwokwJfDTSkjYbGbKe3+6NK2DUAgEMcIt6nl9po27a+ET4DsUGX75\nWt6W\r\n=1DPJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCXqA2R69joev0L0cW8BabdRPb5Fxe/SaZGWXDFgn/YowIhAIn22I1SNohlLFY689Fr2ezEDcHl93lPkL4lq7VFj/cJ"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.0_1544847011508_0.5073107985629197"},"_hasShrinkwrap":false},"2.1.1":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.1","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"97f4beea470290b870511eaf603edc723433b79e","_id":"tstl@2.1.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-zAyCif5rOfVnGwe17ocHrW9rEL75AHcqXdlIvCmxIR8FSfdrUpxDRUeIr9g1ZdupBpvibPHOzrY2NIuDWfTzxw==","shasum":"321802a1ebc44c98db6f86bed8082f330de5acd2","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.1.tgz","fileCount":465,"unpackedSize":933993,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcG0saCRA9TVsSAnZWagAA17QP/1af+Zt7NQJCkItCoR2y\ntXRsl6NhVrdhW7mAANLyehYGMz11UxmjtXVE3UHodHp6bOfH8yCbGeFrx+hx\nVQF/1Eoj2OWKwUwQmNfkgADkPwhOVCIREZmgpGpBOwGksYJIYYpbRBhhUgLm\nefGFGhqQMheW//Q7NHTOByjToJH6q+MPxV9zvFkjY7CgynMUe88s2fWnJ0Tl\nw/rzfQHy34qWcCAZu/lZfUusNWUhxrUe1Jgn6Y31dwSzoj5vJAFbTteL3cNY\nCS2kAYf71B1FbST6zHd0khqXrmmzdkEHpcoZ8LSYL0pDIXXCk0M5gVmye56S\n92nxnqPR+g2Jwf589AkFqXO6G2MQW2e8DZsKnJzPxS8m9i+gBBIzoCz67gOz\nVuFo989F5Fb6m8LkPWoiS1WLwfsjDgPA/nv7nbSPP3nNnu2trqkM2UCIs6oD\nozO9WZNGxhzp7UDj1LEv7vUdRPNnpMf7A0f9ImIfvyA0O3n9vOvtOnAbLqdF\npZyrviFyFRYU5rCCo+gZMpKODGJY8o3MeC5yXN3QfDb/fuklr9xqlkjvWwgX\nLN8To6GWtHrnZNeTShHZX8kwLkk+Jf3yY+0lfMu/KQo3Zv8BE3r5+1xyyFrt\nSd6RFJonqXKPBvGHvLv4ZvenOLDNyScfS/tRRsdtct63Xa+9jmfvj0d0U/M1\nKUAl\r\n=syZL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF9f5yaKVQzfcVXid2vI3CsJWwVsQ4gIStw71iHdihsoAiBlHefH9cKWiSxXWA1P8oMyWAjBB8wFfS6U/rRZK6cplA=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.1_1545292569318_0.6423986842304252"},"_hasShrinkwrap":false},"2.1.2-dev.20190122":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.2-dev.20190122","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\n\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nfunction main(): void\n{\n    let map: std.TreeMap<number, string> = new std.TreeMap();\n\n    // INSERT ITEMS\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\n    map.emplace(4, \"Fourth\"); // C++11 Feature\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n    // ITERATION\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\n        console.log(it.first, it.second); // (key => number, value => string)\n\n    // LOWER_BOUND\n    let x = map.lower_bound(3);\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n}\nmain();\n```\n\n\n\n\n## Appendix\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Extensions**\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\n","readmeFilename":"README.md","gitHead":"fc10662a7d337d1cde3461df474ac340c543d261","_id":"tstl@2.1.2-dev.20190122","_npmVersion":"6.5.0-next.0","_nodeVersion":"11.6.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-Mt/BGTJASFTqdC00SGbyq41FZ3hYGYpvAMAiPQ9yA/AFbaB+hJN3sg0jCJvJ1FvCn1FrriPYPKgF4PYNvWjgWg==","shasum":"6be6193a5dceb0d9fda610bf3dcdb1cf6dee6967","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.2-dev.20190122.tgz","fileCount":465,"unpackedSize":953863,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcRrWgCRA9TVsSAnZWagAAFmUQAJDyMiuPm+Fa4Tu1ygWk\nggeQa/2KNC+qhWL9K2oBGHQPffUCxRVBnhci7nGtQQ8o0RoXO1h7sn1+rLiA\n25joHkwAmZYd8ZlsuqFPHvOsOg8iQiJbGPCxRJLZ6V6b5pV38l2qwp9yaHkp\nVQ8ijw6vtSAZjWOzoqvirwtHCa9fS4qj9OdowWhEm3K3A3UI7F9VDlj+zM3F\n/yDKW73KivCRVTu3ZFfh3d2QQw5gMGL8YeoN0kjWS/Z2psUJ3DJtvECofDYY\nTObLYSP6kqIbqkZiFGFnCSzcdYvRDQLRnwyL9HYYqJLgSv3VMauNU+BTwGrY\n6w3+qyYXgwd1Neg8olPnuvZWVW50fLkyYjzN2RDd92lBvXW/iiZ1C0vLGvjs\neaEbdynGw7o282XY139yw/FaFc0AoEONYEHLa0b4UicRVVNhF6q8QbWHRxUh\nY8mhmSpN3J+Xr85/zYntRlggCyc+an4ZeIoesDvkuaNKJA6r3JrKKJ8fCY5R\ne3x1PO83l+gsT7ERhwId8r8HK3VZ9RqBG9xW3ug+7iO16gr68vKhZuvMVU17\nm0/aS70n23pnZWZ8eA1ohQ+bn1wlO4lFPB7oUmHUmirDzta7RYsW1uI50scT\n+OUhES5W8iKFmDlkfLXnIKEHUh8ffDIyL5e9iFkmwQtxggS3Kmpyclu9BmQg\nCV8H\r\n=nFWd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEVRECjiqqLdQcil+Dn3bxEbKFJ2phULedjKZJicZoCXAiEAmjrkImkmJI0AZUfeae+mOT9ZD9NeHkc96PQVUdzV1wE="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.2-dev.20190122_1548137887186_0.31462532154500256"},"_hasShrinkwrap":false},"2.1.2-dev.20190207":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.2-dev.20190207","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"026eeea082df0c068c4851ae1a93804014b1183f","_id":"tstl@2.1.2-dev.20190207","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-6wirkrHMNhO+jZffc0WD6pVUP6OwWFKJqaodNl+zTBf99ARkN/Xotn13cjQch222njQG5XlKm6FyNsVxQsTv9Q==","shasum":"d20c95094d29a616fc14ff9c461592eb1df0288d","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.2-dev.20190207.tgz","fileCount":465,"unpackedSize":980849,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcW+PPCRA9TVsSAnZWagAAv1AQAIKPHsQALh1dEoFVzwv3\n0By6w/n+Y5E7WXhXtbm7w8p8VIBBLwvxIvd6pTZ6DM1S4Xqgq5Shr77LQENI\nNyrtRg/r/KloJOSU9psReaWwTFuMdvW70up8hkcwV8CPBRUWUihI6CHydnAy\ncWBZr05G9DkDcei4JqqCoOLdh56u38AZOpy1u0/Jw5UNBYlJGa/IZHJ+2aT1\neNC0cT/aCZggD9YpNFSsqLRV0PfWbmCsPYSN7/fUgPTbj7cNgotA3VKlRhFn\nWiJQdwhVAgjPm7m3WVoEZ5aorDZQBKYIppwKv5H1ayM0ktUf0f0YN39+d87X\nCbn/08PYAOwEG+pIoImu7dm8KoEaLkZrSqH5aynXbleCVCRRVwABhzq+xFc6\nr/0ag95S3NKm2LGFVM5aQ6yJO15wXanF39m6Idkd5IVQ3xpneldX2iyZtrpD\n3kQC4cKIV8r6SZ7Pwmc1T1F4PgLJxE/r7+4vqpzre4sMvWFtuBgfJUb3YYAn\nPL+9G2wwgiSVndQsjM0dxLPZOY4pP2mwyZY2yHdir2HzMg/8YGOEo5thcZvS\nekwU/1pjSS03Rq+5D2Ka18tTgxqdcfRZDlc046EHnLphm7JFt4IT/kkapvAx\n2QD+2VGAT2V8djzmB4KRamBKWnTLTjLvXziKlODhjNd1P11oHt14LS/3DNmZ\nanXG\r\n=vkN9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjtzYAMsXFABuZ7w+/yqBKs0Mh//V4/2/+NTGGAnoSCwIgRxNmsJwbCRf1mGxcT01ALCs496S5C+5G2w/S7wkrf/g="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.2-dev.20190207_1549525966955_0.18846127839987514"},"_hasShrinkwrap":false},"2.1.2-dev.20190208":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.2-dev.20190208","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"f308e2ee05ffde2d09264b3af1f6fc46c243d565","_id":"tstl@2.1.2-dev.20190208","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-JS43jooAUCSu7jQgHa2Lg/Ng0MsLx9UlT5aFJ1geZG6fz8YfyXaHKrIEMFiXc6efhvLPNU7ulwGVGbchilzsuQ==","shasum":"616a1bba413513999fe48d777fb38dee3c47a6cc","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.2-dev.20190208.tgz","fileCount":465,"unpackedSize":990167,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcXR/hCRA9TVsSAnZWagAAdx4P/jWddO9oeMFrFf9WtPJ1\n78Xb0SrkdtU3LlK5kEUI0sGohzMVvi4jxRKDjS5cQ/GEVG15JPT4UrADCm60\nd92x/3Dj8ZDox15dErQrJcY1J1tb2Tq8czXVkRx6UlTOGhhY4dWqbtrl2kb0\nOoMvGmbB0nkFMaIrguSfu9+4yHKqVP4VQ+WeqG87cG8Zj3y+6udMy6gIAifF\nbaZsBbQzrMJNJxwPZGcdAAgYUVa9Fv53sU26xb6GQSJV13CoQf1g/1+IyyIU\nS4GGPnf5gJ+HZcIMtJm0X+OZ1zf8ITikSr2SFX5lV9WZwahbwGUIhIdcOrua\ni+uGcjU/2ZETjOMIuneevSWlcthwoV6NvDrFmEyF0dh1JwtLJzrG9k5kflUY\nGlG/GREnU6wwPNUe8zB73Wn3xPd7rpMbKgx8pTNKf9nH0qgWoeG1xvzi29to\nY7tb25HDwUoGy4Qw15BxFe0q1baNE4bsGbddz7VHEQ0AYILFE5RpxL1KXTub\nDvW79m8ZA4EXpnChBOQoVli5ZjlX4s0zYPvzQzvjo89tlcAFieMESwGp00df\ngbF+G38Y3UWUVFH5Qt3hVAQRYHkEIxUV+HmY1UmtBcSwKC51H7wxkbJNqmmS\nrh1U/VAxVJoMDW69l/e87teSxfMrH1/RM2JlHdcsYSuqTzwOGts7kS74fVwV\nYz4i\r\n=1nb6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEwFcJbo/iQvyF4pSdJg83io8bedTsET+fv73q7NYRiPAiAjla9Gc30NnOpXw/hr89ahPDWfz5rdfhPXFM0mGEQlpw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.2-dev.20190208_1549606881226_0.1687282056434216"},"_hasShrinkwrap":false},"2.1.2-dev.20190211":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.2-dev.20190211","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathmatics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathmatics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"48f029f9fa71c5be2f0e19208d402e6e333482d6","_id":"tstl@2.1.2-dev.20190211","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-ojiJ2cb/yo7o+N6DrL5yNreGqVeNFFIBmYciNCrip8owZE3dZ8zZCfpQSjk4FSe7jqynsRV4LMjCY6fTAmhC/A==","shasum":"2ed4417fcfebd6c6ff004757823ee2f2e7c1eafa","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.2-dev.20190211.tgz","fileCount":468,"unpackedSize":990589,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcYP/MCRA9TVsSAnZWagAA4NMP/RVpVecXAcTMnpQyZItC\n3zRzanTHPEd2w/RSpctLesi/KlPI/jIeYv1mibq29AQwrt7KZ1v9P7AQTXdJ\nCROZt5++sUyNAaoeHN2D8IH5mOoC5ofJcasI2ZbFBYKy6pYYIBTi2AwOp2M7\nRbJocARkVHKTSlf3kKV5BVy8yksYL2nSq+rJveRGhmlo0G6LAMKLN1nDpps3\ntSalkDEHtxFNoQArjWsfuZnqBdb5HI3CFwyk7JCZo8MBM7si513n3hcYM84G\nStkQpDf6KHJJqvPrqUfQd++wG9cEQTEYCOIUXaTTA5dttbn5SQPR+oBAoR50\nVpQmT/G5xO622GMBYQS/RGJqohSB6G1+JOZEJiU5axgwrxuiwTVil9JZV1b5\nwfVsuiUSgyFHPO3AusjIwlkUkCKnEBEt7fx8XpE3UB4qjuXXqBJ9CceNOqWH\nNC+CtRQNcEYxMEz50/oNUygpC8Hv9gG0LLn8Xowbj2JJoZ6YACHpncmgQG1Q\n8GqZxlzoAiErj/k9J8L4VubZf3V4nAaVCyAxamFDPmkdFM0lePnIM+ic5Ids\n8bk072SWj+J1nb5Jk53fe7i/8K1pTLQdCzNBvqQUpOrUfPym4TvT0tf07gQ2\nzvbXXDmApaIMsbfPXDNATDQiXDsWpIkpDiQqvrzFMdP16bRYQJgNtQumgwxx\nR6yZ\r\n=d5Df\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFUVAyRNK5DlolZHH/hZoXI4GnHDu0HwMpbjDUEAwXfAIhALXT+cxxYjC1OLUVI/RFBXyQY5zaNN4DtOV05UI3C+QU"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.2-dev.20190211_1549860811476_0.14973658633668552"},"_hasShrinkwrap":false},"2.1.2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.2","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"27b1f63fb6c3ebd09be15487229c7dd9dacfae65","_id":"tstl@2.1.2","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-JZbqCJhRgYefCWzK07lM3zZqpQ3Dm0m3ogXExMGaWLDZZ5iEF0AsiQUrujNbTHVKhArqkwP1gzIyyj5yPwPVlw==","shasum":"0c9cd5e73273c8e4e0a3269a976f1f69d4865e2e","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.2.tgz","fileCount":468,"unpackedSize":991436,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcYilRCRA9TVsSAnZWagAAKckQAJh06ieH/INbuCxovxov\nOQxldC1r1SLBONg46G+4F0x9T+Q7xc83CsXqwZxxL8Vib90zTJI6g98wlmoB\nkgyye4PRHYfri/FHSpgNH7Eemno5l7tU/G/e2SQefUA/sg4QW0BY2X8gGPkf\n+KfvARbRurtWkGWQdbWy0S8snGuxe4RV8PafUOsv831ADds2tlh6uawUs5FF\nqfitXF7gMOvL0c+QGNZWIxTW/2Myx+9DuxHi4RGEFk8lg6ZruLnmEBi/gDY9\nbcVkNrYSg6ILXb4JEqkVTfdbCMoHUfi2kAz3OSuFSDAOo7FVzdxn+NyVhKrK\nhCi1ZB0Wg7fb7g65tkCsKN6OWEZvJ8KBNRQlsbYScljbq8F1sxnj2sz3H8gh\nvqRaN/aKoZYfgRlj821GyPm79O0HpVqyV7+N8n7PdWsXz2pPc5N7T/y/eFp3\nKAX+glWxjwKfg/jbXb2XBE8Q+exbHMgf4WQ60yns2R1/LpJl9/1akTZG93Zv\nLbvck5JWeUi/CZRhdwyyXM4yNMkRfRa0QsCQrZAfJoVKQQA/Hmur9CdLcnzM\n+x2Iqd6KlZtkk54sxEBAIpW2ucbNFvvlRZsM6Wk8BwoZj2ttYGt9uc8HvE5B\nCkubknPyuN+mFVGr94WTLbUr535ikm4ow8zPKf+uwwyIYfbFDXsv/mSJvLE3\n5r6/\r\n=w+7L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDt+xAVzsmm5F4A95I76MxNqfxp0IehOPH4rOrSvCQ5WAiEArb7fxM93GRWMTbzc6yLPNV/BuVPA5DLJT/fa10v4aLo="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.2_1549936977030_0.5632491238345319"},"_hasShrinkwrap":false},"2.2.0-dev.20190303":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0-dev.20190303","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"3f60f59f3baf3f906d61b8d86d99214c797af44a","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.2.0-dev.20190303","_npmVersion":"6.5.0","_nodeVersion":"11.9.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-5HVKeUF/btFLmkNSUD/xCkeylY3RYZJJlASPa8/c1o86qYnumOkyjHTYGfjN/rhuSuYv1DVsHrMtDCNKQPk7TA==","shasum":"843c87e9a42ec29a59a76249160720cb82e1136f","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0-dev.20190303.tgz","fileCount":474,"unpackedSize":1048633,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJce98bCRA9TVsSAnZWagAAYe4P/RR4SKoCecWWSedEJ6k8\nJaaQV2dEkZ+W30Rk7HmuIki29ymYIKhGHccpAeuDba5/ZSSb8WnfF/UJJXvO\nvbynOEFnYyHRrgSTdyUb70E/UppqZqtIFMn4fbTO/KnLfja3ZGcNSe/brYlF\nR3cJNsxkk+aT1IqIAnO3M1sepB5Ih3/fSVEV95fcKKHV6PIMsHQYMASF8ecs\nay1d4h6RFgr8By+3b4+/TPtRpi16WDQ3TTHX+OXQYOqotvsvfUMijufJLCf+\nAreNdfV1QqefFDkjykKFFmtjUZgQnFL0m0nKCgXrDtzzfgJkKHV+VBPKUUSS\nVrlTpd+z/4swQO7bQhKiVdXRQSAu9geInSFSZdhbh81iOzbaP9x/ABem7++V\n8vGuOkANz+SDEYQlBl5wAq6bYR9ZGfXcM8o/16dh4EmkKxlY6sqy8ub6/0cY\npX3cZckIj2DimG9xWeusQDmj+ajrMfAwKDIQ02f6kNjSiQvJ8zuETu2K9TP1\niHCPflVYjxbGua/zueNLLO6gn93nVEmLXs8kt8Ky3UpgPenGre4GHYG8Rd3L\nuiUFcnt5qAUIrMlGETPbaCdnuGa3o/Wa6Vhr6d3fn/fbmtXO6GwQCzUVpdTf\neOlO1S0xjMOH6P5x6eq1783tCQBTj84jfdZEFwhcmrLFXA1PHOcvm0HMCLpq\nP1sE\r\n=4S7e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC283jIRZx2IIAlBUIkHyzN5JCyWUq+kk/N4lIjS3scyAIgdN7ERNYRKKwH1qdW51yQTQlEAhzuylqPSQCexNyjkH4="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0-dev.20190303_1551621915010_0.8943888589854525"},"_hasShrinkwrap":false},"2.2.0-dev.20190309":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0-dev.20190309","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"7eb9445acf0b4e456de2f76801e3294fcbf329b3","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.2.0-dev.20190309","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-7yHRH638y3n1hvfuO9krjzT+iwkol0PGlmVbNhadCDhl1gohYE/NIXbZM9obDEKlzse3EVKjc0oSsFy3jXTGZg==","shasum":"557a676a15188c75faa7203a0b95cff88f43ec84","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0-dev.20190309.tgz","fileCount":480,"unpackedSize":1061408,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcg3XFCRA9TVsSAnZWagAAy8oQAJPeaQUSfAtfnNy921Jj\nB6gsOdWbBq8qQmO9hX7gFIpwaMMqCzWyqw1ey+Qtqg01gliV7UnP3RILIIyG\npp8oZffT/hZzvht5UJkVf2w03DSUd1Rs4lqzpSKo99xxdXplQ77BVofs9ODO\no5gFa2Dy0MCNje7G+AYDd/yTR2jCQ2ShnrBRJ1PvN+ovKSXVTtKve6+1VDPX\nYOcf6WsHDdibFlwhdPRuuNBhgG11H3S4noTmsumE48anI1UUFOyml2UIc+t5\n1DUXOc1Qk1sgUa1OUcjegdYEt2PONNTKBJWNP7a8ncrCEPHfLaa2bGOtkZSh\nAx2/Z45SDW2eVKVCpP8vv8cwmSChyx5I/3GcwF69F6PkS4tqK6unEoooQiwR\n+EvQ1v+og8JRpK4wM+/N1hWDkTqK6mwuVelailDHruEoiI9YMOmxrXf+uTwD\niLYPt4tpY/zRKKrMkYDDbwtwBZP7kSE4+YfGXvYRwKam5eVU78lY6AqkY8hl\naTInwqqsZ+I/4IIZbz6Ua61aAnj5n5g82Cwb810IZoRh1KyNPVN3fYe4P+Fk\nlrthkIGFBdk12uVHyXqog6tmOIgjE/yKFUcHLrISif/0qRg8mHgzhvQyM3kQ\nv5ScgXtRYeh6YLygcRjepn/C8Q6sDe6M+5HWUK3XnZ7DMsj0Gun2NOAdBKUO\n2+CF\r\n=d+FY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBVjwLqjghmnKx3VR6CwtjsMM2rfmrinIknA2qQJAQDDAiBmY10+7ZTiZ/KgD0VAPAMV15XCNY2oqbcuCJLTaGspGQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0-dev.20190309_1552119236500_0.8869813249000074"},"_hasShrinkwrap":false},"2.2.0-dev.20190311":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0-dev.20190311","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"061f63decb796357847b145963bade485c257c99","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.2.0-dev.20190311","_npmVersion":"6.5.0","_nodeVersion":"11.9.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-n+UCgF+tcrZ5OS/27F+NhEGMS+/iXV8hX3bsc6M9Ikck4W9MVme5/9MMi6Ed9gnnBXlaHPHq8MdL/96CyxOKPw==","shasum":"bc2ef80efeee78242c5658b927143b7c2d62f255","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0-dev.20190311.tgz","fileCount":486,"unpackedSize":1070454,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchSyRCRA9TVsSAnZWagAA9dsQAIpxzriNG69UR14YAHaV\nicG5+4Nl035ilOKrmyfR2YKK7nYAzg4aNkIL7XxH+14H4HjJCMcp8kVtQv4i\nQq7Ua1tAG8UJyYi5uzIhVY07wfCh3AYTrY+wIE8jo5tw9/G2TdHAnvIsvjc4\nfZcXJwaTOQJbVvOpt/4G6rDEz02yXZEp1PS19ryQ28D9xS2cb6TtEeMZ0Hon\nDJMgGaQhbfVraJYAU8CoeOamrayMAOlF01oeuED/CA12NJUE9Gfy1C8A5ADK\nRJRVLe4Zj8YurOpujvC5xiRyeKzYZGBj0mPJVKa1B26Ra1Bp2m5LCsGCwqDW\nt8KMYBVKUjl7z87HchwLRQbJ5KHWq7/yeTIp3RhJotx/pNYtl0kDxgWTRTow\n54F1qxMFy8Mrbjhge2RbQXABDBS1SDM4Tx1RUhhNKEhHiIrOiCs+PUGh257u\nOToCZuMOp97j3XZu0QqgeblPzLVnHCElBY6fw8Ed71z/rBt0glZUOfzv/gXG\nVjR0suvC+FD31FLsJXHeAVkrtpaPrtx1IhFVZ20raqN/WDUn/Ha4lJMgSj7S\nZfIEvAV/tLMDmn7egofPgm+Pjvxew5K7qvBzMcoIv5yueNpG4KirSfyOTX5J\nMWR2F5mGuIFeNl5cAnuppoUeyGDbO/myVlDd2kHEY5Worok+YyH9h6GhvvS7\n+Mqi\r\n=vK18\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEIG32zaiisoYj+LZvY1hBDxZRzpZDtmhowVU1+efMHUAiA593VJULbOiVhZ50jWFr3iJvfasJWfRKcZM9UezpF2lQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0-dev.20190311_1552231568181_0.7911988515471506"},"_hasShrinkwrap":false},"2.2.0-dev.20190330":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0-dev.20190330","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"f5a27aa91ec666428e29ebea3c27c1d5f6ce7b3c","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.2.0-dev.20190330","_npmVersion":"6.5.0","_nodeVersion":"11.9.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-weX3X2Q8MqhsJ86ilo7gllhY7QRss7ISTQZxnZf4Gxra+5KrDem4zhn8msL7ui3u9OUyWMn3UoeI0Tuhmi72XA==","shasum":"8d7c72df791b8ba70b480e1e72137edd81334f8b","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0-dev.20190330.tgz","fileCount":498,"unpackedSize":1074286,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcn3pgCRA9TVsSAnZWagAAOgcP+wbK3uZQnyDIhN8tbs9l\n2x5idEY6x8xGR5ItU/5aO8Xy4Us5SI5Jf4E00Obk8fV1RjYnmuKTJ+3UKGC9\nXTJ1E2EX6inW90yKwiB2sutzWkEgZ/a+BWcx+dh70jDGZ9/i8Y8Ky8gHxdbM\nGphFJ3Yn3Tb6OkymSXhiHFeGlQ95yVNVdfHvfGER/UKldnV3/zX6/vV9uJaZ\nB41bxSbU16gBw91QD8YGWgWGkOB7GsRz9tFo2k1gxFA4nUO44gmBYLwmEJYa\njy2MlB7u6jux4JXcUmxzq3u52uEBs27Z+qHkdmZSxXe1RuMLExSWcL8PxL99\nzvXwCCLpydKZl3XN/tYf0+KwJrTA1/BIWQJcqExlZPgtUxkHvyqVwlazUVlr\nSMC7Q5BKZ8TA2iVqhwdEZTncWD1DhEJZO3QXsFCeBOnCGQwrq6FniAntJjNU\nVvXNvV3Fk6ggoHkbQjLFE9be6OtEMIsdBmCPvb110/q5t8r39IRjGrxyiw/8\n1jz+22aCywo4lGFvKJwcNA566C1XS0Jy2z8Ijc2GLFMulyDAtB40V+lBhpi0\nL+qBGloQQ1S9spLJK8L4Z+ZZV8uMl5CrTsVlKQ+8MVSWVbgMObzvUig6gTTq\ncDpCmhGhL69QFCO7TomXwMdFXk9mg1KfeMX/+3N01RqzmV1CTt+jX7uDZulF\nSt9P\r\n=IaNl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCBt1gjdFhfpZmbmBqP/tU3rJcOtpMoeODb6eWPmkYEXAIgbB5aZuEX4LOwCnMcTvS+RaixAemU/Gg579gFnc0SCN8="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0-dev.20190330_1553955424047_0.9506645442865722"},"_hasShrinkwrap":false},"2.2.0-dev.20190405":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0-dev.20190405","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.0","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"2885540a17c89a42c159257b42c6473fe7709dc3","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.2.0-dev.20190405","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-TcNJ0YgDNpTA4vugRjxYcdpBb4sA+Eate7frnSnM2XUS4cnuJE6hhRqtEuoyXB7Feny++35Vrh4O9zOCbrMeNg==","shasum":"c43125f148f8ce1724cae4f7da7c9c26539aab54","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0-dev.20190405.tgz","fileCount":498,"unpackedSize":1074010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcp3OtCRA9TVsSAnZWagAAz4AQAJ6+NpcmlWHMd926Hcqt\n1LbgILhCOHZaeULfwX4xtGEMrBkn9Kt7pxnKcqV+zMfMEde+1h/T6l8CdTvE\np51YmGrt891Gnrau7imXpnf+hmVsgxfNCzoWs9jYoVd6QBlen8+yn94cKMPa\nHbyXcZqeggwBiLGOL0uF9hfvpxGRuA/aEE4/w2xgSS9Nk4ERanh4xs8IQZAx\nmCybgn2sWMSWukqiAxAZQxNL8774k4NMR0nmc+DLAjuOeCi/WjppV/GmaEiq\nxxK+8qyWOqiJSmPY2hEV3CBcIj/n3ORePvBKC4CWVACUNuxaJl+PISjeyjm+\nvKQGOzLNt4HpjD4P7Tm/N7WDv2Xr6C4kUEw+Wec2hU8OO9qhV+xjrdS2bBTR\nwxE35uIbetY68fvuiPl2EwkUl+QmcfSNarvstomdkXg3dup4VE7+/AqZucRO\niuI2OY/+NIe6Okv2a/3xtTSZerb3GWojYJowbUpDy2o3UBM1o3DwnQnAlMUF\n4uyXPoRrg9EWjFyzs5nF8Jk9gOgJ0agGk3CfsCHbnUMjhyx+UsV2lKocV17v\ncUi7Wnl2tWmShPsiXaAGKT3p0gVE0LckTv64aNukjCdmq6e2vErQ72A8opiW\ncc/PwQwSvxXMK/uc9MSZTdkHF07oLg3Ch/zwJwTSUDQtxVtMJ40nUA56JQcH\nbcjg\r\n=kfge\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICjTZTlppr0XN9qLy1B+XBZYWXV3He0yXiT8NLzxMw0oAiBjU86cyyC8o1iXjBBbtRHqX7bN8sBNq+o47ATE/pfukA=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0-dev.20190405_1554477996073_0.19269037269801692"},"_hasShrinkwrap":false},"2.2.0-dev.20190406":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0-dev.20190406","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.0","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"2885540a17c89a42c159257b42c6473fe7709dc3","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.2.0-dev.20190406","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-wIm1ptTcaLZBmLir6YO3q114HsAKvUqC5xEi34CDx3S0JuVM1t+yrsmjF/+mrU0/zNT/rrZgQpIkDZXb+XEbWg==","shasum":"d590cbc7f5cac3d5d60a987ed0282c4c2774d516","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0-dev.20190406.tgz","fileCount":501,"unpackedSize":1074609,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcqEmyCRA9TVsSAnZWagAA0WMP/3uIRE1982Uj4Sapb51b\nWCRr/ut/4OxGw3MYDGuitjIs+2BKZQ9MXVUK/o4SXy+gBD48XtSgITNNZJ1C\njIE3c6XSTZAXcyAkEwNKfzwQlZ8BAaHsEvqd/HevHYn7TC8uWMcxiOlf5lLX\nTXUWKCV8mK0pNfyt+DeaaHTNIXckpdN8PWBkNb56/+btFqGaJQaXmPEhMOKT\nsPuTruC03CzmvFC+dKrJAEDRdqP4zbgsGcNPz+o1uW5F1CDrERTjaYxTw40g\nPdPs4sdPYgD/aljcwT8UdyzOFDMkEfCKOFeZXa1gvIsB4XLl37gz/HXepCa7\nKKAdcEyvb56JxiFrlYATifr0r5urA9EdVqfumv//J0hzOX5Tbuaxb+N649Bp\ncsrxAuA7lOiMgKvpnFDzrnVIX1CB0Ho+Aojz38BZeduPYYMe9wOXQhHStbT0\n2xyb5wo05FTUWqyRWlF7q6Taq291pNksyEgG50rPBNeCw/C03Bo/0uMriA6f\nZ4n2ogTxkuIfYICA/xoF/5bFM60ainQsxrRC9H8zcegGi32tSSaHYHSPmj9d\n+b45ZlOBJG+Bt4ToNzHicYFNtTPAkZgXrAIdKf6ttY/sy3KIHEWsmMlGms8s\nlFgBBmSuA5Rx8kmLvCbSOUXEL53LViFgJEqcWjZUzDx92qsg0rpC2xrsU5He\nWwdQ\r\n=ulos\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCq7d3m6hZp9VtRp4/03MOiEv9LNcg96IKjZrZ8D9ASpwIhAPLmhXtX5gtrvp/HIIhxV9S6jOa+8rWPfNd3ZkJWsYST"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0-dev.20190406_1554532786046_0.7351430623080875"},"_hasShrinkwrap":false},"2.2.0-dev.20190407":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0-dev.20190407","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.0","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"f3fa114ab1dc94eeb8636d4bdc25d920a33815b4","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.2.0-dev.20190407","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-iBhUiLgUH4DBqCaF6wCZ0tyS1B/9UAL3nBN2t+fua4jG08zcdc3XEIXz9w49NLwkksYeCaELQ1JU5tLZOnfbWA==","shasum":"1a6211c45c634b210ef91c7fc907a7e637e46092","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0-dev.20190407.tgz","fileCount":501,"unpackedSize":1074820,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcqgxcCRA9TVsSAnZWagAAf0cP/RhrygZtWrSEYr4zLieT\n40XZw3hCYLRC0aLlgotUl0eJTifJH7c2pujcnMYilqVM1mR/OMFaYOoQL+i8\n3+FoTz/0fELZMs3CpVELOLvPyjsAOb8V91uqO6+lwYGEGC+Rleo/efFdajOX\n2FVunYcIHggLhgeY8n+3Yh8QrvmpVSUMUf7NsO6XmgBiQAkc1G10PoXHzjn/\nYkV+QvdbLIJxDZte6R61rxTiBg6ZZV+f+RVr7eNJvgN88vA+sjNZxfrJL4kK\nQPBZwMsMucgHBelRKMcUAx4dFdj8aQ1rwctvZMyAWOUU+4LfnbV1g1+Bmzv+\nxlWVAfyURL+I9CRIi2gc2+P1oXeJW6ny94ndfWJA9tHDHH0/OgIsNQIh1UdP\ncvofIwSyWB+TfcZI4BwrzbwBDlNEahpK12ZVDhNXep/EyHAkmaCp7+93QrzP\nZCn7sKhoHGBP/rkOZJ9EXtLLPupgENOsn+k4RG8Zl/sSxM32IYaoXJ26EHWp\n3CLu6Ok4wDL46cgTkcvXBBB6nYMC/Y1d+DGQgQJIUtwnKICBB5Kqmf7LgotX\nDeNVoO8EfmzMJDMxmUOrNMMK8aYiWVr5/hsTKo6Iq2lhPedcCA0m1Y3/tnpU\n2TnxA2XjDD70jAigXES+rCNHo8eE0UxJJmx2CYT57RnEG2oQHOwneaTSh/Z7\nRtMe\r\n=jGxA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2jdAYVoJx64vbST3Jrv8Pc4/KfWcgTKwlCo24qfOspwIgaUqrud4pUK5DNqNVuTRFISblGzhc8qxQgMOb7TQuwps="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0-dev.20190407_1554648155223_0.03532896604863289"},"_hasShrinkwrap":false},"2.1.3":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.3","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/main","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"0aadfd3351b88fe13da4eedf8ce8bec54177d53b","_id":"tstl@2.1.3","_nodeVersion":"11.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Hj2lekT4CyP0zN3CpyM6nHXMCA/vWC5/AyRtkhtvMDrd/aYvzW+pBzFtxz4XD1ZGKfR3TbZ6Z4nm4r583KiVGg==","shasum":"75bbb68a1c7d1499018c4818556f3dde157c15d5","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.3.tgz","fileCount":469,"unpackedSize":969049,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcy8kUCRA9TVsSAnZWagAA36oP/j5cWo4ULrx6m8FVvD4s\nOnW/3CfwY/hfQjQyrlZeA4alt3BIrrqKhy6PBoasA1u0RSqaTeRlEzz5isjn\nDSEovXP/M0VrD6PtmFqOcxDQGZfllYfbi04a1zoMgKT98Vrz6fSZ9fK8WxB2\neg+OPrqE8SZZx6NYsxRXq1j77CzVj1wy3/tNN6xXlSoL3dIL+R97zCYFN6ab\nGQLSvdyOOdNPsgJLY8jVqpTNo1VLFmJF5i8COEk8BufP+G3o7bpdMfoGVuAV\nBDVv/8RooKWv5WGp2WnSoqLYv/Xh71lg1s960zYNIZKlytXcbMLcjIcvQsJ8\nJVVy80q67fDGxXJdIKnmR3H1SsHoTJ7XQw77zv5uea6vLRjx2D2yOq7UK2pm\nDNjyBHVfPoLVziywJVjbrUFzv6mwm/IiUvsWpkxkQ+vPS6+LCepvHr5+VYxU\nk8pzGKcFM/+Om6lbs6Od9zlJx07kegdHXXf7Iueapm+yCaY9v/ShrXq85dnJ\n7EGIRUmskkfcDSG+VSFdMjN73M4PuE2+uxsuktUKPm+w1oD6HmGGytiEYXR2\no++nFxJNYyGNipcxYT96ZxPV7TeCGpwN3MSLeafvikTC/vvTXQcFwf+mZT61\n293WYEr9/DSptX0R3YmEhtNBosQF0THWnUgiKrIlNHTVEj5ODtprtWPQjjTp\n9D32\r\n=q+Li\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHPdsGjV16gRjG2dlQFlwe48Pvm+cIARYdUckXCFXPWjAiEAuYNyDme2MLgmsJXxyidEA2gDForYkNPJeRRkb675Zn4="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.3_1556859155995_0.630694210844241"},"_hasShrinkwrap":false},"2.2.0-dev.20190503":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0-dev.20190503","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.0","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"803b3c27bd57b6a82e6853480c2570ac45fa5df2","_id":"tstl@2.2.0-dev.20190503","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-uEViSDm3KD2Jn7CC4/0blOdrXBZq0oAfuWxl7IBYDw5V9jTGW4CKQVxG5k51zKDkx19M+YTZcF5ejjqGcWpX6Q==","shasum":"224b49a59646898cd59c1ac59d0299c92cc2b71a","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0-dev.20190503.tgz","fileCount":501,"unpackedSize":1076613,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJczACOCRA9TVsSAnZWagAACXYP/0dc2OAX+mGzORmod16b\nU9zoMUO4vxOoVg/HdeeZUg9PGfR+rBA2EUp0+BYAj9PCCConZdR0naMxVRoo\nXSMYWTDFX8JTwyEQiavtlFpfW+PhAI7uKfTFwRorOlUlrs/F8AyYWbArgS62\nzmtjC4Ip0rCjjF/j42n1TQNbTvmWc+XBVA0PXfx9KtOYbb+30yb3sVqNF06I\nWdYxJR/5SLfX5HC75zOEt3NbFIcaPn4V+quzpnMQBvN8qffqBvMHFklCTi2/\n2uqRQhS67YW01ev/YxQcpgRbJvan0K1RFPSmOpfZgRQ8lpO0Nsyv2gQSNCQO\nURFbB4vZ6tTqVBDCpfFZn/iEKZ4+ZXm9vJRJqQVHxvq4yqib4z41raSrBLBm\nUdf6pOlmGjozqnj4fvjqPj+vxC7cmDiwDcTJ8GQW5j3IVHUv+GNs8zc720Ft\neT4uEoLGNWyF5BqB4J1etjCrN2DTqEz9DwyKupADbyC+VrAjX2pOZmOQIZqV\nSVacNG9KOaz/UQHBj/0RnAHM+sJvJyZRCJXyFSHnTrnvvAhrIhxVF8vxkcCi\nzUK/8cvF2oZCBPYKPiBbV1LT6wyzwtwuMCiHCXUoSsDwxMVFh5i0Zt7JYYvA\nH47w6YRJAx307SZhOYa8P+W7cmrADjvuk5v1zVGyGv7FM64TNCCSnyrgS6wi\nFo4J\r\n=WH1h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZCB41DTGuBzxZm4kslfo/DkefrI5Q0dAhcjj/WFC7JAIhAJ3dntnwAeT73+xI8LTtdksQFYDYv/iPB0E0bfIFARfc"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0-dev.20190503_1556873357698_0.32786998256246647"},"_hasShrinkwrap":false},"2.2.0-dev.20190507":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0-dev.20190507","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.0","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\n\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nfunction main(): void\n{\n    let map: std.TreeMap<number, string> = new std.TreeMap();\n\n    // INSERT ITEMS\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\n    map.emplace(4, \"Fourth\"); // C++11 Feature\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n    // ITERATION\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\n        console.log(it.first, it.second); // (key => number, value => string)\n\n    // LOWER_BOUND\n    let x = map.lower_bound(3);\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n}\nmain();\n```\n\n\n\n\n## Appendix\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Extensions**\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\n","readmeFilename":"README.md","gitHead":"803b3c27bd57b6a82e6853480c2570ac45fa5df2","_id":"tstl@2.2.0-dev.20190507","_nodeVersion":"11.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-u4XRm4NXQUHilTL7IMxynMiM+WlOH43Nkvz6H4CIQhV1glgSt39UFeGQWK2JC9hTEvVOSLV+VrCVLrkAe8h/8w==","shasum":"769c64a300462ad312826ab88ef7593abd76452e","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0-dev.20190507.tgz","fileCount":501,"unpackedSize":1055285,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0OfrCRA9TVsSAnZWagAAH9MP/0d7ed8KzO+D5MUVxyEM\nqi9dj7elNn8pJmLwxTRUbA9CfpXJAO+k1xEc/wWJCeyzexGTIPI9zS/+hHPH\ncoYYeTENCHR7IRy9nCF924gwM3bo+UJUCtHpKj4QT4Nn93xz7bDqVqhOYBQ4\ng6yVIy0me4aInWlmF/7t3qhQ9b3537+NA2JRXDNxDMGsFw/Xwu2vbV6DMiKj\nIhlY1orHA1tzoW0yjWQ2eqEwyOCcpb8f9MV4I+t8xaapxrO9nxnPOH6loNq+\nYv/IwIMOLMIiVuW+uZwj3NCuEzB1oAkEFOFGOFoQrS4Rom/T5gHHR0dRBqKU\nLm4G1CYpezJJBynncu00W3R3PlSWtO3dUo8SKkCUGSRWPYWdhxWV5tlYt7JY\nqYC5uR/nZUAIAxYY+lG3Z313FLOjZR8uKf/D/b+WooSui40JyGp2mV2/GMC/\nAEmPGIvDKPrVLxE0cRrEfhth9SXvTfE2dWmtS08nl8PFuk9xGqArja0SghB3\nCXZhb8B6LUL2yl3PUbAoFwneTfvJvhx0C/QVZXWE37sP/ob8sEGR/afaEq0Y\nS9bM8apQxD6cP423qKlMUsW6Bun5RKQq8UL2TOpwj2br/jvfzujj0rUk6ywh\nSOtwRkKYvHuS8kj7gSHbzyCAuVNv47eomjQ/DDia47NQdpjl3P0k6wtjuALo\nsga8\r\n=Ftf/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDp5eeWF0gFuOphvEBkTSch/flO4VH25jyApRGvBUMAZgIhAO/xCgTLbTLaGgolrXLIWf9BakxwctAJA+jD9icv1TyC"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0-dev.20190507_1557194730705_0.5374236727204"},"_hasShrinkwrap":false},"2.2.0-dev.20190508":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0-dev.20190508","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.0","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\n\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nfunction main(): void\n{\n    let map: std.TreeMap<number, string> = new std.TreeMap();\n\n    // INSERT ITEMS\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\n    map.emplace(4, \"Fourth\"); // C++11 Feature\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n    // ITERATION\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\n        console.log(it.first, it.second); // (key => number, value => string)\n\n    // LOWER_BOUND\n    let x = map.lower_bound(3);\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n}\nmain();\n```\n\n\n\n\n## Appendix\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Extensions**\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\n","readmeFilename":"README.md","gitHead":"1f4c5f95cef6e7e7d3bf43b6f83ff63a3edd86c5","_id":"tstl@2.2.0-dev.20190508","_nodeVersion":"11.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-RE4GT++2/da/oM8BclnU23XP6lOW3GOphGs4cuLTS1g0cez7rIUVKhXaUFpcb/4zpZHTOkWq712+ZzwqlU46Pw==","shasum":"31c23e9deb06920696d5a5bf1d53fbf8f7d27a22","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0-dev.20190508.tgz","fileCount":501,"unpackedSize":1051928,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0Q89CRA9TVsSAnZWagAAe38QAJSq2R3K1yHZHRrd9l3D\nhGnIJaoVjLCUnQ5YPkwuozd9IJZ7qMzJdFkKDw+VAC5PHlGnibpQm/OlD1Y0\n0A9Px//8eIsVNLBs1OWh7fhKaFmNUc02SOGVteAs/LU29GY0H6Z/kLwmkF7I\nxvqSEJ1y+Ou+uFewKw5imGo8KOwghnUrs1LvSAB902lfrnIBWvv5u+aQA1b4\nU2CAc7FWiObV+83VfLNTSTE0RA7P/ekSmXqH4dndc81/cLmaxSrbiX3KOgXX\nafivFPtQqarTuA257+P9M/FKe9wlZbc1AEKeJRhN398e/if88tx7BylXXbMv\nwOq1oFS7V4uX6y3JablwzGP470Ce+uiUqiBYeZwRQQo1tEiVCw5GoIONaXGr\nOXjucm7zOqprFuomQqWDPO4l7DS/7qOYQM7JQuzo2KZostPAHtyaXrVvFxId\nMOoSaWGc5tlUwexOBR4dK2wuplfI3+Dk0CNoyBSPpTQxiyID6DI029ibc63G\nBZgRpsJZuzEvhTQCTGbJbclex9ziUUSYpSMPphZ4pJIdbPGR3xFCQJUHsT9X\nTVngvnOPcEMXiJS08b5kROKlxJH4gfmLEBdL9Iag7xyop9PhaimC7W4lfqiF\n91MjKTB3teA+Ktph5Xfc9t0kk9tLpwawV3pO5CUvouvJ0OrThi8a89stRgr3\ncZQN\r\n=JBLK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICLV/lnr4kiaBO5cBrVkqEDlKnpZiZvyuSsw0hUGFD87AiEA/kmoaDUT+BHr/9lUN7/Qu4Pyf94kjODtMoQzWvpkWHM="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0-dev.20190508_1557204796389_0.1305660196803078"},"_hasShrinkwrap":false},"2.1.4":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.4","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/index","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^7.10.1","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"e10123b95a66504151c4f29cb69d039710a585f5","_id":"tstl@2.1.4","_npmVersion":"6.5.0","_nodeVersion":"11.9.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-LDMjl4YWx3XejnnZx1V1cymC1/wflvZWplwp1/C1c3ld8ApfFupVeT7a9xW6juLTDv+Cmmhk6LPLVtdFeH97Eg==","shasum":"cf15c18c5816e84a1f8a0aee43edb63743788d01","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.4.tgz","fileCount":468,"unpackedSize":980236,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc1EWmCRA9TVsSAnZWagAAY10P/AiUPZAQe1J7iK0H/J2A\nGfTFgHo7lScfGuC6D00EBG6LJAIp9i5esUyhpe3fDn+CfMWGHfwDUz2dGAvh\nc1HFdNSjrzk+vTVbMZ7pUQ+f65yNJ8dpGQe/ieUiy0pAXGEpveTCfZy7Uenk\n+bNlfmXWmF4NJr1qLJl3XS6tchJTLfusXuczkaqAiMRooac5xYzlAp+wowhj\nZV67Izut2oc4Bn2ldE2QgLnSGidHFVNUokwyPkPftTZXGKCIbxuSTvKUpDB7\n38RP0ybLMSjCMX+Jsgpe8iCVj9bFhn8aTionFhD5X9pOjDAVbhfsoUmImg+N\naoNIlN/eOO05EJ1g0ZiulcEWsQMq5YPmsqZnVMYzxQW4OveOilZxOL4u3u73\naiuB4vvmftt75Q1LWa9IIWK6p3GFXXESQ62VuyJrk230eKlOdEmM3IjdyhJf\na5KBYgfvt+r/qTvmXEkKbOmlnFmeoY9qeZF1SYPVLRs/nZoUGjrSv90oJd1h\nAt/FMlKrOFOyDu+cfSqPYWDl+nTpj/qlc97LgWfWVo/uaF+gOEZn3beATUJ6\n5pw2BqUy/NGhXannzprJpYpXhnSvUV/2UtQZZXVoDsXH5G0WwFCnytJDV2fU\neI2EpiVJmYfqiBgRhP4k50OCfpn8/rmGf7ZExwNXMcYigeiEKBDlJznVx2kj\n9dR0\r\n=yX0G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH56clX+AZZidMOY8DjN9fDaywdWGzLuU755DzfitHuEAiAX1t5A2V0yeeSZX+woFcOG0WM7OHh0jDoIqKcf2dAaTw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.4_1557415334011_0.7847185484894914"},"_hasShrinkwrap":false},"2.2.0-dev.20190510":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0-dev.20190510","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.0","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"3d862d1f2f24003dc5eb8e16188366e37aee3095","_id":"tstl@2.2.0-dev.20190510","_npmVersion":"6.5.0","_nodeVersion":"11.9.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-JaPzcGLx/jrHQq9uyzkk/gM3Kd05gL9D+Xepwg7pe2KwUNwOcmvXJ56byTeAmnKN392bLb90wyRDlf1R7GLiEg==","shasum":"c9a370202e87b0e8ad3951435ea4ec05d47f0491","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0-dev.20190510.tgz","fileCount":501,"unpackedSize":1064678,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc1EeCCRA9TVsSAnZWagAAGLoP/R5D0St+VS1T5RIUV3xk\n+tXMI4gfXiCi7mOBZolHntx/vG6nrVIdNDHGj2vN90xvY5B05AFIQNhkzvVJ\nhaA2qi41I6WWXpXJ18hvsVPiq2kRGOecPTA/KjbvYfnRh2ndI1DkY53H6/Xe\nbSfJ0lBWtSMqX448a6rRGz9AvRpo9aiJwEf4299ICN1Jzy7BGrsYHIOWFeAD\ngfsfKl+4o8rTHe87/YdHZ6ZB12Ixuf9OhCXTm8tgdtbVubvk5VtV6QBV6mkl\nJFrOICmLkVe+3pp7YzWIyTTvFDV9u0Au2W322DMdGkLtkyFvc1HQuXjOr8J/\nsNmQgov+xlARFlQBMt1KVhRKBdxvJi18qiypZrwPzDO46n8UbdkbNIat38qK\nb0E2HWMdS5RzDRlDL/5usJ1+mPSB3ERnWRdd4G6TymdjHwLk6Epieney/aJu\noZKHnD6dpDCj79M4Hq7DCzejU6QU/m25PeNAKKC0JHuTq5iE1j1Jho9VIDQ2\nhsAe027/ilaFLlE+MOYpriGngIeat92rzC6Fg3DJiz/gMQu3bmz2s5p2DYNT\nzAwzci4WcsXphg77YY8IaSxWpyxSXJeSlQ1uqbL1ULGa5L+5F31Ylpkl7SKO\ndRHpPiwcPl8dNu4K+YB7fz5elL2X2Y5XgQEq80aSqWMw3GGDaHGdZ2p9nvIz\nMyFP\r\n=8s45\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDk1ZC/TUrjY7F08fxfxTgvWhykPfMaewFjEt+ZyDAvkgIgdNXeTrgG7KiLkvZFkhzUoIZBIarZ10fSimAUPt3DPos="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0-dev.20190510_1557415810242_0.9416562260198402"},"_hasShrinkwrap":false},"2.2.0-dev.20190513":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0-dev.20190513","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.0","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"3d862d1f2f24003dc5eb8e16188366e37aee3095","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.2.0-dev.20190513","_npmVersion":"6.5.0","_nodeVersion":"11.9.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-XnSyBpFrfmjPT2WMXM/kBcrmfep3ViI9wsnVA/VsIwOV2MQ0RMUmRrhGekjAZUPYTXgxlwtOVXUs4elUT1T+Mw==","shasum":"7e2e32bd9f014e52856c20b7f45fe31691e5d3a6","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0-dev.20190513.tgz","fileCount":501,"unpackedSize":1064753,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2D0QCRA9TVsSAnZWagAA0EgP+wRLKMdZf1Hv33QPkDw3\n0rL011cnvZjY/opWzg7smBWoqHL0lH0nVgg8UPn6AYjyx304ow1CCLYO/+hO\nyYHDW+BclGfG4BrJ1rBhtDX4dk2fy8UQ5vYEhhEwkiCGRBVOusJcp2szafdy\nTktLkypw2D2dngGeA8fiQMZjaMDoHuQEgb9xSteJdvWVMch1tG1NB2dB4Ips\nAz+rj4zGAgEBlQkGTSWrE95Eqotri2PNHic78F7x3YamojhYgWsQGa1nRpat\n7v46VIn0UUGhTbS4c5FNwSIlUuE5nMm03FgqKbEhUYDJujW9t9I9Vnr4Jqf3\n97/srW3KMzA008qCsY//wwGMRNZolrQbzObFTeZEB92wsNrNjJzkmnwgecvq\n7BgWy8YkJCUPGsWNsGGn5qmzJIUwYXvxVlVWJLpvWtCaJDFC8fTpMor3GJfK\ns+2bZuCq+OHnEXMv1x1HOBZAphxeHgke3EhBRqgeGISm7lowSSeF3kmgEqZl\nNgJ0hPk6MaeKbQ9RbGyreOLcYtUW7aPGUhQ7OGCe6o/7IactMxThLtEu6vel\nuARm8Cqg07lhH+97lh+NlAQO5nEO0dm3PuRxhq5KCyCCXbatdaDRXgfzM+uG\nHebpe0d1g7YB7xvqX3kwP/0u3rLsQWQ1VWxkurR5o3/qE66RG8Pm0r26GA3I\nf7Ak\r\n=WIL1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEV5BjHLJfs3KEHpVrkIP2D64bTVF8TLi7AUyVnmQn+wAiEAjgpdW83BMYvE/6+2bNl6e43yi8CFyadyee3jvyX5WNQ="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0-dev.20190513_1557675279652_0.9239826498685135"},"_hasShrinkwrap":false},"2.2.0-dev.20190517":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0-dev.20190517","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.0","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"6e779efc35bdfef6bfa94f2a97c8b11ba267de0b","readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.2.0-dev.20190517","_npmVersion":"6.5.0","_nodeVersion":"11.9.0","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-95NUaRI7qUAkUjMZZEGk7DNOSmqZjQv2QHgPHK1fbTCahIPs1mthPsoTxDWmiIzuh3yoQA2NO5YQKutYiVa3xg==","shasum":"33e0ca2fc54caf8574e5ed4daa1d06f37fa87475","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0-dev.20190517.tgz","fileCount":501,"unpackedSize":1064546,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc39ccCRA9TVsSAnZWagAAunUP/RIdBIpo2vFiDkNR6p2x\nr3v3f7Wzeoxn6ow3pcDGMKCUysyEHmOPAe4sD+UN9hVt+2IkuZsX/8sqfZXm\n9PrUlcQyj41vQ8XBgACdsacIrkDAPTWYIjaOcWSd2ie72diUG+UetRLwTefs\nKFWx/OInFLZLWB43myCf9CfQCDnJxG+Dw8aAxV63tQNrrNAAwPOPBUgIp3bi\n1O8XjrxbwFiENFi1s0ViTibHbzcVkSxN40Xwbg6NI7muLmgwJL3P+aRG02Yl\nQpq1qqUOteEB3Lq9F207+xXtZ0sqOfm44TND15E2ATP8hsiDHVFClFcHtuYX\ntzJ95+5uOKGayamXi3LHAT8dzX4zDlv4atNVl0HdAUYGOMUVrJROHB5LyI/O\nNYWdOJ5vDdf9m0C24um7rUg6sq4HXU85WnzCKO967CEJPVXooaSk6tVsAHY7\nEmV9GCWv/zBVOtAbx3DUfqzylgENkntSiBsrn0q8OmVdYjV1g4sio5zRbxgJ\nCSCGi73FIehHcJ3pP2qFhP2MlKFYSbaT9UZxc0/0G8ICVLiGGX2/st9urqp9\nmwH82WVUE9RK+jLusbLC6nY/2nIyCyUFuE/hNOdpyysboCYjd3qE6yXAIPgJ\npZcmDTineu2JwOJ7ovTaYkO2wIfXxfhlRJ7OMNSzE2W+iA2bte7UUQdPpkHE\ngsYT\r\n=T5Bf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCAOqR9NzZrCms2LzP62iYIwPiAHBQkkQ+kzwXBEc32HQIgV4z7DRQj+yaHlAm2Ckst1++b84SnwdQY/QBSacbYG00="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0-dev.20190517_1558173467241_0.9754651525614635"},"_hasShrinkwrap":false},"2.2.0-dev.20190522":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0-dev.20190522","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.0","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\n\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nfunction main(): void\n{\n    let map: std.TreeMap<number, string> = new std.TreeMap();\n\n    // INSERT ITEMS\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\n    map.emplace(4, \"Fourth\"); // C++11 Feature\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n    // ITERATION\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\n        console.log(it.first, it.second); // (key => number, value => string)\n\n    // LOWER_BOUND\n    let x = map.lower_bound(3);\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n}\nmain();\n```\n\n\n\n\n## Appendix\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Extensions**\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\n","readmeFilename":"README.md","gitHead":"4b7b1bcf47ca8f96ad65ee71231142969736cc4e","_id":"tstl@2.2.0-dev.20190522","_nodeVersion":"11.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-rKtgQBR9HFw+2npT9GEFW/GSZ4H+HOxP9jfndxuVglySFlqAJSlxjrRC0/zaj/CXObX8PdrIeQL6N9A+oKoJ3g==","shasum":"5740a790f4fd1ed947960319217a7ce3bd5a20f2","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0-dev.20190522.tgz","fileCount":501,"unpackedSize":1038536,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc5Nb+CRA9TVsSAnZWagAAcIAP+QGhW1IC3wbkL007OmTa\nMqOSIjgnXJyBGrs33s84D+EffCi/NhUlE3UApJcw2oQT5FGojao8F8BOJfIo\nRyL2SNmMgqQbgRVM0NUuMFqNAqGYESt8bqQp7tM7hpo/QZnxHi6HpzQFVQjq\ntn4j+PkOXR3oaIwqFV/Cu7b3NQvhwvd5O+kqo75WR5dy1vRk0tGiePwdofFs\nzjWpokUn7USJrn99sPr1VsHcLd0UxADsC1WCwDxSQak9K0+a+KJCa0RuETzB\nLk1e3nsNybu85t29M8LqTsyzuTwywDACMqVnCaN5PdWTtWhlPXwVWYgYm9or\nTqhRxEgmxVK1uxl9pSugIERNVecdVpYJ0JuMsi9tMSlQJP0HwMZKgAQ6gbQf\nNezoHs2UtHsxEn9edWBD4ATUkRTCOK8WChXEQe6akr6YKwURl8jX0t0dkwIK\naRx4tCRiIKWv8ILg6gQF1QcVU6a+wJ+E+MzcYTRPtNisvS/2/Kofa9ERd+tB\nVrEEWg/Im0yrVJQWL/XWVqu6PH037/OycA2//ug0N7j8MxbqRuHjdT3tXJRl\nn46XovlelvrYgFJnL6XjLXpICGanLMimMdNzeT4+oQzmXmLHDqbcIsSl6C9L\naoDlKNazt3FEKkcmamkNUJlPf1dBAwpMwAO5q1uqID7JjyOlkCF550efPTcA\nbysB\r\n=lF1a\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgxWrU84IbiGKNHCY7c+vDdlwhF45HmDvs2g0tUWm45gIhAJKxuv41RvJhC+EDCyuVEb3c1h56P+4Pr1a/8D6m5V+Z"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0-dev.20190522_1558501117245_0.09942105692491365"},"_hasShrinkwrap":false},"2.2.0-dev.20190523":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0-dev.20190523","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.0","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\n\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nfunction main(): void\n{\n    let map: std.TreeMap<number, string> = new std.TreeMap();\n\n    // INSERT ITEMS\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\n    map.emplace(4, \"Fourth\"); // C++11 Feature\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n    // ITERATION\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\n        console.log(it.first, it.second); // (key => number, value => string)\n\n    // LOWER_BOUND\n    let x = map.lower_bound(3);\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n}\nmain();\n```\n\n\n\n\n## Appendix\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Extensions**\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\n","readmeFilename":"README.md","gitHead":"da4f3e0dee4994914da2cf9169436af056078fcf","_id":"tstl@2.2.0-dev.20190523","_nodeVersion":"11.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-2gwJdFVI5OZQv27Q+5A1X9+LlQ3a1aerfxE6QwcqyyDBP+ca9+3XT1YrouuyCHWOO1GxKIGwVQOt1Qdy1QalwA==","shasum":"0df9c4a4bf21625774a9dd06b6e8e8056b7e690d","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0-dev.20190523.tgz","fileCount":501,"unpackedSize":1038491,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc5Q//CRA9TVsSAnZWagAAXEAP/0J7LwM4gk8F6Mu1FKUH\nFfGJWCHfZr442WBYpNk4roi0rNa8TbC7YpB9+rZEHbdBv336dVPZsB76kiLY\nRmrWcnAw9b0gN2Roiv/3gYhdqCn+Zl5/Ima4jtiRSQreJ2nHUnTQqYC1tHT0\na3dtKnk+QISDD+sLf4c3kbpR1khkvA3H/bmWRpKgwyBzRZG/6WPJg/aBqPjL\nKkgMcvL0PAqXasQeacEvjQw2gEJNY+6dFUX+rg5vHCHl6q0aMxmlJEeLEou9\nzSwQbUVx1tNKUbtWwGi1QtzXzdXz5TixiqIUmtEFaiEpqeJ3Wk9nRsNN0u+q\nU8y0mtLlZXwZa/+ahuJRod5ijQSvyVj7d3hcO3hA2Uxcnj3i1nv2/JDum98T\nw/89/rw4evd5lh90UXokP1QVXFM2LVTGg7xXagQTOBWzKHzuhWYkl3Jap6wV\ncjUWJTj15VYWznGG9rHCD48tMze6BSC+nAYwjYndkaSeygqqSxNnJUXqc0bv\nadP+Zbxu1zzAiEf3D2OjLLVYJOnRcnsI5nthOTS5fFqHXSTcEhwGaBhk8DUL\nQx1+P0vQlx8o8SIEY8hxPpuyz6+wNiYC8HVLn7OX9BZl81MIegpRZGJvpGRq\nEmF0LlU4FcrhUc9lMFBlqLsPocz0/eTHaeNbm1dPgShWKjQ8ENcf64b3ugix\nfNpA\r\n=xIzU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC/1MoPFqB48Kl3OFyU9kchHngCWRr7wc/7eVS8239a1AiEA+QqDdHYoCVs3biphwWdPy1IfIExOACZN6798rBT9jOk="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0-dev.20190523_1558515710788_0.5726533414253969"},"_hasShrinkwrap":false},"2.2.0-dev.20190524":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0-dev.20190524","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.0","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n    - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n    - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html) & [TimedSemaphore `timed_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.timedsemaphore.html)\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html) & [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\n\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nfunction main(): void\n{\n    let map: std.TreeMap<number, string> = new std.TreeMap();\n\n    // INSERT ITEMS\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\n    map.emplace(4, \"Fourth\"); // C++11 Feature\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n    // ITERATION\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\n        console.log(it.first, it.second); // (key => number, value => string)\n\n    // LOWER_BOUND\n    let x = map.lower_bound(3);\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n}\nmain();\n```\n\n\n\n\n## Appendix\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Extensions**\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\n","readmeFilename":"README.md","gitHead":"da4f3e0dee4994914da2cf9169436af056078fcf","_id":"tstl@2.2.0-dev.20190524","_nodeVersion":"11.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-5uMwwDIF0OXctd0ZCdCDx1oOrMjWxHAol3jzTwChe7PaPYv77GLg6YeeH1SPFt24t/AXtJE1O2Fhe088hbPfWw==","shasum":"32c15213e05e9aeda13a67b3ae196d0eb80c460a","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0-dev.20190524.tgz","fileCount":501,"unpackedSize":1038574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc5iAaCRA9TVsSAnZWagAArtEP/ijqdklENWMN44F7TEU5\nvzJE0YtRd+4qiFIkqjNcxALPb98Cv2uHcHPz4IakHY6NdzVmA1DJThDWyp7F\nbpIavdEraDO6da/oiglJtICXTOMMk8mTt16l0U4RUrR3N66oUqCYleQppdCm\n5nU7sSwyY5oW+0NF9muphSvPn4vv8MhfaSGlRYPLVqRVPyj4ZvJG3xRXjN5l\nMq27NoQ1TocM+yp2PvTVTz2mf38Bi2cYD2tM3OhI5EI1f+qIkxKU/ZUsWLeU\nNgWakIvSBsbF68TTyCHgqbYAyQ95ETMx/rf+fTZIR9mVBjytrY7TSbCoVTcN\nV18J/BHg4WO09XrbM6tTrLEmzedV7KddDhGKpuoby40rEGyHXlI6/NX16W5a\n48ZjvBVsyL0l0K3YG9lc68psqi7RuuLAIphYX4yEI9on1Zgih0nTWbjZgLml\nqxpM2f0rjzKG/SO8H0vMoI/gG0t8Y+6fjq/LCZrpPomam3b9DQG+JR9acfGd\nxwX8AIwvjq6dQ/iE8RNjMcNI2CulcGdZnziL1qhN+FDHSrndqcwoYjUxwvJP\n840iA+1Kw/tO66dmoqFh0ie/JhKLoFEMGhjqO8t5nlhd1+cfszFXeeL3N6fi\nd3R2eB/74/OBGj02ot9QNY6LMVrXm5u+7FfGDU9nsjQuzyOfzTPP8h32nPGk\nDPPf\r\n=/uIa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC6GSHx6qNC/UoMa1pxeK9MykmpaL202Us9vhxqOWOmMAiBmu/RCqWCd1wbUvrR+W7EgSOrhypZVZAO5hKxUGnei6g=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0-dev.20190524_1558585369114_0.5494016007281086"},"_hasShrinkwrap":false},"2.2.0-dev.20190614":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0-dev.20190614","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.0","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std.experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std.experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std.experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std.experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"68e1ee71a3921a617305f59c79f1419db15d62ec","_id":"tstl@2.2.0-dev.20190614","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-QAl6W//REboPSbdi0eZY254WGZ4oyWME3rD3WYmBQ3cx+Lc4h9R6dwAOwY+5SHddGen962JIwWLMag+u1AMiJw==","shasum":"7de310f1fc1febd02d7d7d4753401902e89d3535","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0-dev.20190614.tgz","fileCount":501,"unpackedSize":1062272,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAz7UCRA9TVsSAnZWagAARYYP/0YnNRQq9g+LYTm8y3mt\n8rQ8c2xokw34mJxqTMHx0TOCTcw8FREi+prMUUrAdYL0MOIqyvBqi4+9rHvu\n/V6sOzx9NtHrK2vutp6yjvUdM2KbBF9qIg8C0UR2Zz7LqHHS3h3pm39HO88D\neiPBBUzCxS8zBHPc59n/x2W291EopERLx4JI1J5cqW7EJ2NOpfNet3FH0fNf\n4V66XSfSfX0eAJObhxrNvBz1nZ9M1qpBP4yTJubqwL3EbElJ2XeSylhcW/bf\nFOQ10aEfjsUgGob/YMt3VVTkWiPhN6rsGMFCLKPIxzk9g2W8txJ7wPWy0ajY\nOoEU5Pw36tx7OHa4Pjfu//Ziy944FAc8CvG9DaQhdZxHoTmjFddSkOj5iq3v\nxV2d5Ut2frAkyIQx1zXd/YoQ3VuVfpUblmbhO4Gw4L0iuh1UPqf94VLiTGM4\nQelN1/BlOhyCGlKtQ7JxaHcEhu6EIq5eUIATVE7v7U86IXhJ+q+jlYiJG8m6\nyDiMb8KOu4FaeWTYTcHYXBGVqujr14Di/fZpXsJApEmp/dzFgAS6e9VQZ3Ld\nN05gRITFpnI9T9j3CD16+8AU96ctmn8gRhZHvXTe5AeRQSxS8RtRP+OzjLZQ\nTgM52e1w94I3m/PpJ55G0rLZrrCabyWlHFENJ7SjGZtpzkrAwOgp64Xwn5+S\nBAq2\r\n=P77H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7cnjvAnMFoGWuMoWrQWggw8MDahY9PpQxT+BJfCoyjwIgG+VxJ9T1jPJjooVQpseUO2KppdvC2rKI4Mm2nwOt+eo="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0-dev.20190614_1560493779247_0.8749900035995921"},"_hasShrinkwrap":false},"2.2.0-dev.20190615":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0-dev.20190615","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","benchmark":"node benchmark","test":"node test","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.0","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# **T**ypeScript **S**tandard **T**emplate **L**ibrary\r\n![Make STL Great Again](assets/images/logo.png)\r\n\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std.experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std.experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std.experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std.experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"bb655f430dfd8c1ae584070b471b1e5dac6f9561","_id":"tstl@2.2.0-dev.20190615","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-aaVz7ycuQczduPLQEBW87M6xqNNzVRCuUIl889PAwOqqaTMl2lhhJ5VKG9STL6wY77AyP8Mg1XPTpHD2o+MCOA==","shasum":"f03a8e7267b649c1a423598d467b038ccc9db3f5","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0-dev.20190615.tgz","fileCount":501,"unpackedSize":1065523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdA5QlCRA9TVsSAnZWagAAyugP/0xyvH8YIUKdZNQd1J0E\n9f+ncGx4IEkWQ9vj1ru/qTfe03cq6/pbdWvxADj33+nfSWNObvkB5qhqcMJm\nV2dpYgi2Iv1fVr3q/29Bt4bTh3VEruw/8//xVeLNyKUXqzsP2s4wSBtT4zVh\nBlN7JF6BoLvy8y9J5J6zVNSEjy0TRRu8wDDQQhjwXNuwIyt9kAUzbgHQDi4/\nQF+nyzmhnqKHRXJB0gfJ3M+W/3NCQD+LMkp5MeJzI56xvhiZyGdZVs0ZX59A\n1zqXRAhbiwpzmy7z89DKS4kLp1xAbswklzfmDr4JEQI8Gz9GRsthlfEpdKFc\n0zKaZdTSKuj+SMwmBWSSZ1+cc/fEKH53Gj1+lW9uOw5wQo2TrsZ7/NiU8GVO\nfV3hxdevYg5oh9Exu9KDPcv3nEubVgI8O5Qz8T4wlnJZ3FntGqa3cW3p/Jok\nBwByX1+/ue1eo/4d+EfDXw86ab1Zuxw8m/ffblPQiZrsKHyTvxYMOX8TQ5F+\n4jO7YbX6yn7J9AKsx6Uc7eCoRZJjb0M8mrz/9rNpI9gwk+DPF8lyAr7rT/mm\ntVbF/30Bve/QtOaZ6KRpfUkDEOdQnVI0fa8Ebhh8+gkIXuyGFIoNBFFWjyE/\nnpvWolbjaKtYn8ZX+tLD1WaxiPHNWO1/KwRzUvUKqDdErcwagiFxnh3ntNbw\najow\r\n=zlWS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgMqTcP3l9jID3pjahn//Y8cuTctPRjBU/AkJcfKSUPwIhAMz8hRVFK7OfgdzHxwQgVzDvATT1pbWkuLiY4DaV4zhg"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0-dev.20190615_1560515620672_0.5315808720379704"},"_hasShrinkwrap":false},"2.1.5":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.5","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/index","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"8562205364f17a990bd9eeaf6245a841045f7010","_id":"tstl@2.1.5","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-3pDkk784jiqVHzQuV2mrE9pKq9jURLPx7f8QGPS/+IPPPDyUE6H06O3epMfWfC3j3Dd3DsAuczMFaO5MfDktOw==","shasum":"e74659c72b2ec19c77591a15b8a80203a29650a9","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.5.tgz","fileCount":468,"unpackedSize":980383,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdA5bXCRA9TVsSAnZWagAAXfwP/1GS4l31xpJs0Cmasssm\n5aIgS0FViazcD1k9d+edqUoq2/BBJ9kgw39vCJwkhNSW38ldOZFwXbK4SZZz\nuifAlsqbdH+1aszNhzZB8QkJKwWiBPcxznJ19q2pIayouZ8PIAiVmM9nzKHm\nZ3/pTMBE4Qo7LiyIeVMI0dK6AZ7MkR/l3Pjc08v/AP2dA0oXN4WgrfjRbrbJ\nBA1JYpwJYhQhgnG3+iJS9CkyQR31d9iUNIQICIofzpfZwyrMlt6WhP731nZK\niw8F1XT9qbyFiHunQKkcOPHQc1Kwl2hPrxcaATD/EhSEHCkmRaq1Mpr5Movz\n+MvexfnMBTbMGV13abl0lcWNn12iiKGUPjWeWe5rpX1bqijlMvj7bXreiYd5\n7t2rW+mvlLZonWS7/7p71rxEFPUONaULt2VS24KXqEOsBF4TOyB60ZD2FGTI\nl5Kt9D9712uuVcv3456+oDl4rwFU8/HeHduUwcr3AKubSClGI5FnOhs5T1To\nC3YRNbdG6PjLijYwzmNZLNfX4nViqbXc5yNwm7EsH7MSFR3pMFhLPMzwf9Me\nTyCSRBJE8sMUB1aLEwwkBjxjXdGHE40Pmnn2Y+Mg6FUrIJcxfYGjcdtYbVtW\n5IoA1mkXKKGt8fcDxhedukx+eGfjszvnvCvh3VXO1gMF+1hYmhGIeVYFavAU\nnUPH\r\n=sYn8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHZQ/MbssCd1qENoMJ7bxjfaTk9I5iZqXH1cXiidf4lGAiEA0lrQ7Ru5jG7e0ZufEf3bHSyhxFyGs8ztRjBc2H9kys8="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.5_1560516309988_0.828008257180296"},"_hasShrinkwrap":false},"2.1.6":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.1.6","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","test":"node test/index","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"19c0b6a053587f3ef5f83511a3f77985e44af515","_id":"tstl@2.1.6","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-7RB6jThvI1IBk2iTfDgDTCeqLaqpfDz260faTuPIhmlaMprkbXTBFa+fyhbR84f/HnFh/DZ/AupsyHu7EKlheQ==","shasum":"ef28ed43af3ce0c104c96028527af64afbec2e81","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.1.6.tgz","fileCount":468,"unpackedSize":980393,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdA6MsCRA9TVsSAnZWagAAk2cQAIyI6VjkNOGPSZPBURSv\nLZ6cfviqAndSxDg3SIpUFoFyrn2lT8DnQ7CHVV54Kk0dtilwfIbUIQURH5lX\nrc9OZUcBH8smoktN9vIb45aBKKPfY3t6RRUQdxx7IRbHyUYmfs1Iiwb7zIEm\n6fr3EMrcbyNuuyc5YjakmPBVhOh3GQ31INIAzGXU1vD2sakM57pde0PVfCbA\nvbSDaE7tzcpD8JB1SGpRUVz2A9O3DzZOJfEHh4O3H7Dzo/kTITSUwrpMSI1D\nczEZOzslHWP2dv6/K9RgkCkbS9Ul4tKqlYtGpbg5Rx8FyJ6AoiGA+nNaxcXl\nB0nbA/frG0d5VVPMJscAAOF+81hjlGpPsTtbCg6A01j9TdK6uUUaWN8V15nP\nD4R+lBUqXCeMr0F8X8k5Tyt7kunIlF3WbS5mW0OuUy7vaFefjPyuHg9wgVab\nfdUY40X9cyzbnhhOkIXtrgtUeO5BnyJgZVRPVzUPYn6mri01eVC3DZZEtczU\naOrxCXTVW8MH+9YxEKBi70qIUPsNUHMk1VU8guSMsTaDyuGgWv8oo+pNIjW4\n/CX+FNLnIWpcEgzMM4/UacxMQOa+Uvn7+1J761Xc5aK8YXgOzAL2Np1UrELx\nBULVivyNVbh4U4yG3TwDKpahduOSqv+/XTXIZRk61MhTC/z8+uCcecaySNXA\n9UKf\r\n=+NY+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLqMohNIUHZ+lLVFw+yv7d+UgVkA/Uu3vqBDbvKt1YawIhAPi5grfj3Zgo6llPA3+nwuuB6/0WwaN5cRXHwWb+AGaT"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.1.6_1560519467097_0.05249703470271294"},"_hasShrinkwrap":false},"2.2.0":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.0","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","benchmark":"node benchmark","test":"node test","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.0","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"83bcd57bad3ca8ad2ec1f3d6c3de3e049152133e","_id":"tstl@2.2.0","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-gVp5Nx50cb+oaAEtO6PDvpqc2ulXkOA78Wb/szAT/ssGfnZFgjutKO0AOPo8EakMOtMb4sOrq7Ugl5LqdoxmWg==","shasum":"0223552a752f2c3c3546499175b19748f4098186","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.0.tgz","fileCount":501,"unpackedSize":1065572,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdA6OTCRA9TVsSAnZWagAAsvQQAKEiayv/3ySCIxFxWLBI\nRY3jQK5R1viHN1JOSjfiymUoroB8FspvV5+6/g+tegXHEjRWmUsoDIJ3Lv1W\nCzm7rFW5UHuO4qABU13e/ES3d8ubaGig925xt9mpUerkXIGLkLgDvsAKdxzh\n/ktQJjVmSqIn6TksGRZJMbValA7uTBq7YaHBGUHDyeeVo5UUmu62M2EyuAqZ\n0hvFojbpBhRQ9yWM4VKF6tBDuYsc9o3/IEB5ddnRQfw5sr9CMEBxp/T7kBTm\nSgFo+w4GlCz7AOzlAarL0c0CP0mV/UWYBcY1Fj6A0pJfSfPMduk9NTmBHjQu\nnx2d9JiO1YCnSAgUoEN4JNSNc96thFG9Nytb9boHYpMIPstl+M7aZCMZZrwm\n2GTnN+iZdzuj/uU782/DIVbTjmlz8ueIBOKEerJe8yHUHPhM6QhvQfC5VTvF\nPf7V5UP8MV7t6opBb4Diy/xfXw29vI9F0RWF+r4WUoYc5rDoCm+CTTAP46X1\n99f+sAHfDAQK/ZDo0gbjGwoJxM+VCyh1bAI/zoLLWpo9wARHf11Qa6o8/l5Q\nGwGYkgXqnwplYDNF0QCOO9DWh45hj0xRIjCEhC1/6bebuqvwh2s/kCedcpQD\niTV8d+m4mr3RlSS9j13P/WKQ8/aMx/Si9wv+vApU9sCoR7iaCOkqWBr4ziWq\nt4yH\r\n=sAjG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEDNbIJ+ohCvXHv/IwyC/MdBvX6ZWvQs6loWVxNog+J9AiAYno8ISKhd9WZBedqQHNYRFCJr79CfPX1OaHS0uQ05BA=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.0_1560519570390_0.5998978670180044"},"_hasShrinkwrap":false},"2.2.1-dev.20160617":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.1-dev.20160617","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","benchmark":"node benchmark","test":"node test","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"4eb7976efb75e30819fb7e6c89ee528a9cdbe22f","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.2.1-dev.20160617","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-XvVvKLfTMaVRrbLXd0QIYy3grRDn1HfrmyuDiwbySic3NsuMoI8g4M+NbN4ABoFlqOrbdxSlzdkXzWeTWKUU0w==","shasum":"8e9a5879d6f7001d28c454d4028ca504eff6c7eb","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.1-dev.20160617.tgz","fileCount":1110,"unpackedSize":2322574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdB6ZaCRA9TVsSAnZWagAArtYQAIxHxhD0bSobCHOnNymv\nk32hNH/1+/5+qF93FNYWBl3KK4MrpNNdWegqPrQUrt6gLZstOIbqVs+JJ6+5\nJnatsZabe6y18GDXrGrtn+7J7gV4UXOPLXFGomsqf64ARXR6qgCZX3Bu0ifV\nSvmLsLUKNQD750BNb5Ea4qJNzKdlisXwFK49LASdjnTbC9nTa9BrVxOQZKWe\nRpz5eHPHLE5t340WuWLTDSoZhwvKs81UQc/fR6CxOsU6JKMow6UG0Z+HMafz\nohtnT1NDAdApwsi+yXai4BXZM+80ai4t+/cL8keBUxMd41e3Ve/Iv/Sw7YR1\n0ZiZDHRYK7OeUeAvz2KNTUaAgUAFcVO4CLTJeJ3vL831WQt/w7DBlbV7mZL5\nztoK/8o8eWC+HQA2WxeMv2dZlRHyt+IbJMf9BmQSBz5Yy2bmsl50yAQbPRRh\n/i0ZQ9DW77mgylUV+AmqzxsEvIcmzhEA9HhSkqc2maeTBhF+WcbRu+oYBjCi\np2RmRanzTxsuJc471hNEnCXKEzg3sTmA9SUkyd5zG/mbk/xR2YmVi/WxDrXF\nmUGSrtyoJkkKQnMcCsOkM4gHsnCLXkVYEPq0lRKTwTy3wNlGf5ec6I8sSPu9\n58iJ6MsG1XhNMeIYPgXltu/ho9O7FsIHbWDqsHIOUUg2sz6/YTb0EfeRzfq0\nF1C1\r\n=3AAv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMFtWXs3u6QnygNbcBcMMkljkqJBqyK9wgyXk2qnnBEQIgTfRr7bgt+r326QIIRDlHDU6GEs3mc0ZZTSUL5+04kOM="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.1-dev.20160617_1560782424769_0.5133209738709121"},"_hasShrinkwrap":false},"2.2.1-dev.20190617":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.1-dev.20190617","main":"./index.js","typings":"./index.d.ts","scripts":{"build":"tsc && npm run test","benchmark":"node benchmark","test":"node test","api":"node build/api","clean":"node build/clean"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"628037bc258dd29b750d35d85f9647b2adb93dfc","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.2.1-dev.20190617","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-3at2T2dFXaHXPO9oEx5LUjV5rmDolDmiTvznDuS8+JEJuZKSRLst1qcJsSzGP7UiFoRcGg3G5oZ1QbClCgvW9g==","shasum":"cd5bd411c59e118f6cb7e84b5c3e5ed66482d99f","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.1-dev.20190617.tgz","fileCount":1110,"unpackedSize":2322574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdB6Z8CRA9TVsSAnZWagAAxPcP/2aDQsSRVlQKZilrjhm1\ndkIsRTV31ehECKuHtlkyBUERZLZoN4Cfwkf1Si6jWTHCsxLmb0UghL2PqyW8\nFhe0gdk03nNNiIXvAWS+s47zDzX7LCRt4yHBj4UJUKcc4p3J4r4twRuclMtq\nnOJmpHFMJbGi+uQ7HHapPFAxLwJmh+eNFkzLwKgU4+IQgVD/ZUC6jYRB/lbs\n2cO2hpzLmDFS4Wp70TTNbEDmFfPhmTot1QSPfuAe68xHL6tgFrMmh/0GzUs+\nZypKuL1Mm6EWOnGS7Jeokr191HD/VR9ppgKBYIsZwmzNEcYJ7EOiyV+Yy/OF\neR+ZZij+TdfMPKC6+6gbDiKh6GQg8wLIAHvGjqEXcm5a+Qq6WvNLGs8gJTJr\n17Tv9ofIV4trLIqDKqaL+qM9nljZsuaX32jtFz1I2kAYE5xoAj6EKhfNPLOH\nlsajLh2IrcjVMR/qIwXW3cLCcYnEbDZ9m1zjREIO5HdsSboSrTnocljiKMpb\nOLiZddWquWBLTX676LXVSAnYc+H72b4OkGnX4TBghPwgl/1NDu2VjRh7flTH\nyMmRotuDYNpnPC8qrcuEUqKBMlhYT3BkWaChrQ/oJm59evQqCnb6TcBfLy97\nh48I36Dy1zo/3FxUJ5eRhfAoHeeWGWGSDn8cW5Evcgu+heWI8Dcgf/Ovfp5Q\npwAv\r\n=KRcc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH9Oo7f+GBYqZSbms6vGJV/rbdRSVBU4p3X6WtmoBoFIAiAt7aTyLhwVgGYO2RFnb/Y8YiEpUV3P1ufRcsPbk4N5bQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.1-dev.20190617_1560782459836_0.7014404200999369"},"_hasShrinkwrap":false},"2.2.1-dev.20190623":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.1-dev.20190623","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"node build/api","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"628037bc258dd29b750d35d85f9647b2adb93dfc","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.2.1-dev.20190623","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-PqPUMsafaHVPGk4lX+AzSlZPEYdYqRWwuEE1iNhrzqFDHqxPll3kFI5oRkriWxybCvqKKYJpgUVboHVILRdWUA==","shasum":"040b9af7f9ab790b4a12ed7433923d68e583a4c5","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.1-dev.20190623.tgz","fileCount":501,"unpackedSize":1066200,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdD4a5CRA9TVsSAnZWagAAQrUP/RMkxDpOEa4BfFJX+gd6\n/0dyYugDlZ73EHjKY2hY0gsVG4IcocehMO7J6SI4lgtEy72DFRaTDIscwBgN\nDcIswLOauMuINkiQCCa6zZNFgvxa93eX6yuyTy/Kf3oa8WDAHgzERFh2Sr4B\nvqujerVLZFv9rycjC/01wPKB/d/x+h22PsNUQwKY+wEkjFjtLnZ3oLwRMbGl\nXlZNNzrUiiq0VM1e/q8B0HSn4U7vaba5v/c4+CTHqFlJAbGzP0ScFfzM9cS5\nDPEoNPddTR/C6Na2YKbhaoPIWyczvysyb/7pwYfu7Ve/tY/MFTtk8Ia98fEp\noxy5SxkyaRDEghH1BvI00lmpM5oxd5IAvnbON6hFfSQiGWYPwqbNFk73rVxq\nBrk4LQRJDDUOP7aabb1K+xUzPtx1UHyZA9XsWn+CdrOM4OyTPtnBlnGnpajf\nvu6dyduTkJfQu4vFBfQZ6dn33DyOJEXEkeZx1U2iOlCrfJiSgYeMAc3G/ELG\nFaWJhEAHS1gcV129yV2m0khidgHTWhYgNTBL5UyLW+QtN2vcnPj9XHm/NR7k\nSihmy+mo/OwQwhGRHqMlX06l+jveggZgy4g6rTaS8HTCDiRcZoS411efW6yl\nezH4gS7CxmxSQH5TkgiTOR38IjMlz/bCk3KmVscREN0Ng+ObnWBzHSZ52Seb\n0hDV\r\n=JIAQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG5tkx4YT0W8JcQMQuQso9YPx+PW4g44utouNdHqu8SsAiACzjDXafdKEkyBvo1wjmn/yeAJdAHLN1LlszWL37Fbyw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.1-dev.20190623_1561298616666_0.5268278456991915"},"_hasShrinkwrap":false},"2.2.1-dev.20190706":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.1-dev.20190706","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"node build/api","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"f8f2210caba7194d63df8ff6296415d5ce572fbf","_id":"tstl@2.2.1-dev.20190706","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-6sn/EgZkhrQNruNeIAm1D8jaIBCdeIBjOtsJ3J59hm84WHZRbxTgoA1XPAwbNOiOrdjgMLKvtavMnFaa3k1hKw==","shasum":"c7879399209a17eac9a3d56367ea2b5559f0e72e","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.1-dev.20190706.tgz","fileCount":501,"unpackedSize":1062012,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdIKQfCRA9TVsSAnZWagAAaqQP/2o6cCSJV54Bx2baMzN1\nTsT7gXww+d5YZDHlWbdBx8L4Jx0b6f0gNIgX63nB2uYlY3aZVl9enY/aM+bh\nz0yPTtrU+LRbSf90I3JcglAav165muO0d+5KJ6fAs3unkYcfIi3Q+kA35gNt\nBLPCjHJ69ygFRRklKyzGOwK/pbuI0yQJdJRYEPyL3Q5kSBbn6BflB4mX6yKn\nnWRKZaoUpjMaygWey5trn/e+/zzH8k1CnbSHIYUZ8AfMP2ZVq6o5YRiftZaU\nnqqJsqcH4u6EVIpZ7OsyCWdmRKsRoZ0CaWVJjke/ew/v496xLh8LEF40EBtP\nkwJAZVw49qrJxIGdxC0XMVpwZQ3ToWwHSBdM9kcA6TyDtacDIdrvwFfS4YFh\njh5bO8pER6lphBZK0v45JRBHys0mDgHaY1iVaWMeGIiVeOgYtr/k4BIQJ/X4\nB1QvlhXDMyLRpkrqwpubf3JjYus2Qs+f4whF2ONbh61AAjCow84Fr2H/D9nx\nuICSMkEOKHqp/uy6rTFtkdOkIkh6yS7LxljMGG/3k13ebMSTwdqnBdvINwD5\nwJZJkWizf2pHrbSHbSaQKBpLPVmmNIuuAK2cIyVZmVG74MUBl7AVGfqJF7cu\nJNOD0bCK9TzftFHvpgsL3r4p+6z3EBVkmHgu1MyOfGbRqHwAkT30sYSLkUMF\n066E\r\n=je3s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBTEFFuZNCFPFD36tqFWbgvWjFLw/zOkj/Jg0fkV5vnBAiEAw4W90nO5vjPmMVxCjVnEDVU6Y9KtwDcyOE6Q4CwTS6E="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.1-dev.20190706_1562420254767_0.6853171236042739"},"_hasShrinkwrap":false},"2.2.1-dev.20190711":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.1-dev.20190711","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"node build/api","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# TypeScript Standard Template Library\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\n\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - *Linear Adaptors*\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n    - Associative Adaptors\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\n\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nfunction main(): void\n{\n    let map: std.TreeMap<number, string> = new std.TreeMap();\n\n    // INSERT ITEMS\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\n    map.emplace(4, \"Fourth\"); // C++11 Feature\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n    // ITERATION\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\n        console.log(it.first, it.second); // (key => number, value => string)\n\n    // LOWER_BOUND\n    let x = map.lower_bound(3);\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n}\nmain();\n```\n\n\n\n\n## Appendix\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Extensions**\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\n","readmeFilename":"README.md","gitHead":"f8f2210caba7194d63df8ff6296415d5ce572fbf","_id":"tstl@2.2.1-dev.20190711","_nodeVersion":"11.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-cKPlAlYA7WOccxNx89se+kyqO5BxWvvHtnBupVbSSp08fOG1rePJ+7IOMw47JQr9T4cmYufNWOGcKzOYVEfn1w==","shasum":"d9325bde68e83dc7647a480682c4c6a1cb07bdb3","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.1-dev.20190711.tgz","fileCount":501,"unpackedSize":1039006,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJoqRCRA9TVsSAnZWagAAkpEP/1TjKu8uDBhpErEzhaVF\n9K9PqHIXK4cBOYect6WBEbujPMcmmR2tSyNOUNwCuCxinLWBwgwOiWNEFUni\nV+rDn/C/ZWsS0pvviFg5X/WS9mOZ+IsdcrgeY9A2e921K55TbKE3FQx3ya0q\nF/WpjDrfFPMqflR1XBbcZS86E9UA1AbSWwczzeGkx2oTuDX3/2+TJi8JiUsM\nlcw2BzK9UIcQ9+W4DGdbCYoBcvLH8vMsB6Uw5cCHjjdgeP10FV+4jUVpzh5i\ngKAUrsYUi8jUoMURo6q2ZwtMQoZlRv7zjwhtgFRqDuOjnuo3ncM8PP/FjIJw\nsbJLrxu+EtQXbLfx6AMnpIgjsfSGnMQteBFuEENy8QctbAk+vIvcAG0CpW/K\nwBoBkazLyLfxK3jcKrLa85eaBTLTeB02hJZJA+n9FVoamCkOprrfQ//KQjPl\nK5+Y0hZXXYODjMXCxTzu2vQ4+4fm2iRSOLjDn4L7hwXOlhAJnuV3mKuOpNQ5\nIY8+YVkxDzXnp9XDnLghn16yGVbrnNmfsEhyDlxnJinuWUc0dMwQlzTc2wiH\njSQy9/Essi3dLVf2/8/bnSGpiOX1FRIyQSMMTtRL6MDfRVBSICpzukzvYzxq\nXpkS3Ac7ettQkICn4fXfdMhL2ndYWj/wc1gGYvgc+hC5Q8mT34K8rPqN9Xyx\ng7Pn\r\n=aygF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD81yGHt5Llsf6r0vv+JHEK4Q0edj1CeI/DTJ43yhnUCQIhAJR4QZhUC7etECvt9K49EKFTW5CO2jexizne8JJdrzHH"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.1-dev.20190711_1562806928321_0.6337636494245755"},"_hasShrinkwrap":false},"2.2.1-dev.20190712":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.1-dev.20190712","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"node build/api","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# TypeScript Standard Template Library\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\n\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - *Linear Adaptors*\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n    - Associative Adaptors\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\n\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nfunction main(): void\n{\n    let map: std.TreeMap<number, string> = new std.TreeMap();\n\n    // INSERT ITEMS\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\n    map.emplace(4, \"Fourth\"); // C++11 Feature\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n    // ITERATION\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\n        console.log(it.first, it.second); // (key => number, value => string)\n\n    // LOWER_BOUND\n    let x = map.lower_bound(3);\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n}\nmain();\n```\n\n\n\n\n## Appendix\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Extensions**\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\n","readmeFilename":"README.md","gitHead":"66fadfa1d515b4be4bf7920335cf21e79469ff86","_id":"tstl@2.2.1-dev.20190712","_nodeVersion":"11.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Mda9Z9bapwC6mgaDYKlyj7SGpDw3sAnLtCRKgnWE0pCXnZ7HF/HzYT2kff9gjvYFa8ZIQMU/Z8ZgICjxiv9/wQ==","shasum":"52b91b287d43cbd21400cad0dfdf3aa69de3dcea","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.1-dev.20190712.tgz","fileCount":501,"unpackedSize":1036316,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJ/LvCRA9TVsSAnZWagAAhdMP/2w8gJWJE34Tg5Kp2fko\nWA/vXV1DQHL++5XLnHZUY51J+8d5yoFDboOuAC7bLywPR7VTTQ75vPDgHnfJ\nqGcDMr4DXpfLhXYJ0HZrj3RLswlxqxO4h7oZMKf+spTQqjv48B2uKgDaIvGF\nItUVc7jMXWF0va9qD1AlKkExuUNLTEf2l0B59qdqKpJYmGlal6i27gI6EgNZ\nE0pclM6IHT8r3YAKdPyDmVeO9V8YSN288z749zVTJmjQU0xO7ujlEDSMNbDj\nqBVCYbwOxjAuGse/CSBymLU/zJ7sBOURzL56+9u3dvypxyhYo5GFDS7cph8B\nS5rQcKmOKwXI1rJXnEWIfRuy6PaVA3AMy/Q0pH5XzLYB9nye4y9Mqe1Ajy1s\n1megkyx20T6PWAPnVk2DIZDsA+0lDYCv03T+C0kkexI2Eiwcjb2B9fBBidq3\ntE6Kar3RO75QGwbvv8l00lL0QAIPIZ2XejQBBW+4taqV7sWEoTxQZMFobDog\nnEZ6xV/ERAWl4OKURpSl/M7M/PIqR0lwxbdUhvCwRTc1ilzxgX6BQalFN06f\nrtZkdE3xnpjHU4fvAfRMEIv4Qyz+ELw5A4P1MHl9xTEAEZqbAi1iHz6GagiY\nO+G0bizIJvLwq2bPs1JosvmXR0ggZvBC+8wPYB2i4nuZzkifR5QWDpMRt1bB\nC0jp\r\n=89zv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQLF/wVNf2qc9YZffxRhhinSLS7KGlxPyM5GN5BYWnOwIhAO/tcoptj5wqn25M3d8RavjtfSFvR1OVoZSCGd8xOLZy"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.1-dev.20190712_1562899182763_0.8219766911129043"},"_hasShrinkwrap":false},"2.2.1":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.1","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"node build/api","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"42c8bb8e99e28d6e22c4fb7b5a40d6c5394c7537","_id":"tstl@2.2.1","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-My91th0wpX79JVFfhEC4FlOA12g1L2Q8t1ms+CS76588/iXbh/WwLSZvLEizPE7kdU/20KOBHtKG4co7MqUMBA==","shasum":"79844f5bd859af0dcb8b159c2d0903e34c068306","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.1.tgz","fileCount":501,"unpackedSize":1059268,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdKvrCCRA9TVsSAnZWagAAk5cQAILTWqKw0IlP2NIu8sjW\n8GUoGeE40niXn7gDJ4YM/XsRpZvhx4ZgJCKbHimUVfMGbQyLAYwTpND7fkFQ\nq+s+oFOXxgnNTxdFSEbFthGXpPvZdmjeCBMtNd/g8JDH4lSAXk34rBfx5Fyj\ngJI214dqm3QdKki31csnIb6mahnzaQkmGoHWOE/nDvwzMW8PZmCFmutv/a20\ndWeAw1G4UTzpNQEKK5nLu1SGM/28MqaeRhI7tvsOZ8Qcc2ewvydUJQLaJN2F\nONuj0bJ/Mtrhxi2u4MMeiV1uIOuxUVpMvvH87MBFXFISDizrdh4AJopEYi8r\nk+Nm/L5R7QDDnolOkl7T5eLd0dUQsGVLfZwEg4SiR4gpA52wOfqASyXuwp+4\nVrSkSH5diWWiQYv6mCNJvTVoWkthVWewDoLgBevxqDAcF57tHwatLn9NFgma\nfbEukQvcpGdVbllaLU9SpyU5WhhREltnFhk6E5T+VzZ26KlsI14F6cmxf7JQ\npu2inDnTmEcmKt1lpkWGM6YbUrVu23bfmVyR1MmlnjOeKsczX5tdiaxZBH70\nlJi0XKPuHURFen+/OM4/QSttUZ0NzxnBYL1wlodw1NuC6k+gvIQAjadZjTHA\nN+G8apvRfdDvol2FdCaCeleZQza0lg2VeEyt7fsCtW6eFllMy+rJoT9RM+Cu\naq+5\r\n=pd2k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICilLaENwBePNUPeL6jfo5jFxZ8YAbtnad0qxltTEgGaAiBdywXHU6rMrh1c0qwpyRnVDJs6+vzMj2XkIv6LEzuEgQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.1_1563097793238_0.8687181779909181"},"_hasShrinkwrap":false},"2.2.2-dev.20190717":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.2-dev.20190717","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"node build/api","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# TypeScript Standard Template Library\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\n\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - *Linear Adaptors*\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n    - Associative Adaptors\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\n\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nfunction main(): void\n{\n    let map: std.TreeMap<number, string> = new std.TreeMap();\n\n    // INSERT ITEMS\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\n    map.emplace(4, \"Fourth\"); // C++11 Feature\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n    // ITERATION\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\n        console.log(it.first, it.second); // (key => number, value => string)\n\n    // LOWER_BOUND\n    let x = map.lower_bound(3);\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n}\nmain();\n```\n\n\n\n\n## Appendix\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Extensions**\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\n","readmeFilename":"README.md","gitHead":"510d109efa3d755c2943234d2e86b4a75edbf973","_id":"tstl@2.2.2-dev.20190717","_nodeVersion":"11.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-evuqn+EveLhuemT5l9slD2eAM9P9/R5dchNtBtK727m0OsuceTPZA15w7OyjtV0cU09esc90xZt5pjSyFPSwkA==","shasum":"cbce8053c79229bfc2aef99163fe601746bff22c","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.2-dev.20190717.tgz","fileCount":501,"unpackedSize":1036811,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLtjICRA9TVsSAnZWagAAq5QP/AjWUmNxS/vpKfTHYmJJ\nVwKvGNG7jaC4YDX8Z05G+yb6SdQYN0ZGhbF5okQYE+Ca3dps3+ldfBuGlHeW\nKl54lkw+L4IthlU4GNSC+C6ZARAoztvKPcDzbtk3+ZSRGtouUlFWrCh7h3et\nb6x3OS2XjyXJsaXEvLXgN+HeMRbsWwVynq1V/Am4nIRPN2Kh3OMSmwVq3Vqi\nNZ+6Fw8G3Dp2rtWu//O4eV/gksK0L0XkkRmF4GcvMRIbFltDdInu1WMPp9qy\nNzIcpw+ulGJHbwisJaiCYY687PqVDTgZeXsqEiDkh7PyFqhTdgVZ3hduQYzI\nObXqTS2Ru2srguYV08sF3aLBs3SkfjbM99ZhhbYe/2OwPiwi4KORmHGynCRJ\nedGEIW8+cW3C5JBoWz7OL5/oKk5cnN3ezb+z6gLSu2pjnYUtfZ/fZus/g3RP\nowJho74ykL8X09zJvD4XbZfBtRHnQSGw8i9SFRCoCGrTxctlRLsc307v489V\nYR1y6hrYjQfEuNWeAk3UYnsRJYI1KROYvhzf29AvLoMFM9G5Olsty1BAUZPY\nczzD6BjPH/J+7U5MDp7Gqhf+0i3MiWM0MKQeVnfczh7zg6xE3fwxHKDDdWRx\nZvppr0jwSv9cHmgAXy9cmqFm6pf1UCR26ekXO4sKwQxETNN0DLaqBc/nCYvH\nwDvq\r\n=gbSN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDS4renMWF9lrNBuwDTYwhjkyAdXwNX7nG9BwGDHwkoPgIgGbZAf9EHDjQoRb9HhUh91iDE2kwm6RmB1QhChnIQ1QE="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.2-dev.20190717_1563351240003_0.7763357679547263"},"_hasShrinkwrap":false},"2.2.2-dev.20190720":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.2-dev.20190720","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"node build/api","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"a96924764fecad8b5982c427505c825c06099084","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.2.2-dev.20190720","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-jY82SMnyOx19iuamgLtkyW+k4Jjw5u/oQglITIt7rLAJsQtu91fJZ4N94PrR6F55i89p0COll7FlXqT7K7+OAA==","shasum":"2f34b29a411e80ac52d474abbdbdc5b0180a3d81","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.2-dev.20190720.tgz","fileCount":501,"unpackedSize":1060224,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdMwXsCRA9TVsSAnZWagAAktYP/jfLzt4wS8HyT56a65rr\n4UAWa79ZGFxHOTtS1KIC/3ebPq1rjqNhdVVKXi+QqG6kq1npKQBubLfADAcq\nsWEQYtrktfLzexvG25QuRK9Np2uHXKzTDIaWY7cJfg/eqrgi19ik4Ikq+Puo\n/2VntJsF3UGjy95QezBEV7qaQZFClWMhQnuTV2pL7HmZZW1MAutbwo6eqC/G\nrDdtz8KS/DV3rzlikO23ok5/b4f/e15MGmUON4lAy4nZdssRb5Jka+8YKduI\n8xUtIXdzsZi1/iFxdogx1bB7Qk1CdElivyX2FgaIHrYw0z8M4w+skkMhiwUj\nHpd10zw/tQGkjQwuheYje33bKbKeLE2qV4zQvHwLIauO20xugCdDagIoiyie\nveVtK9J15Gi65+Y3S3ccCBm/b1OOVZjZ9NTjaWcZjA8zSp9r25PQIrXhk51b\nkokcSjShdBtxLSLwKGeZ6znrF6zsxlUWcavq7Pyi5OGrngn7WHGSDhRxq+U2\n6b1K6EmpT5ZPXGhPHZaSS/3r1l4s8qT1l4MBCBY8HiDlZNNa7JDRP4x5apCX\nb83BCEl5Y8ZSO9AZLMAums8T8O/70OdnSUNqNjgSrKX4TnaKkZqP2C1Knnrj\nfU3vkl/1YW1WweCX9f7IiUBjEAoCxccOiDixMPf3aLOBUZiIVvLfy4kZ3jrY\nD70T\r\n=K6Xw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCACWCoDSOeNMacCAPDLpOAsk3L6OKLO/AXdC169X6KvQIgAfNwA+D63/eay6No69g8LNJhLlE09EViCvCAtWSXEPA="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.2-dev.20190720_1563624939900_0.8169733626680926"},"_hasShrinkwrap":false},"2.2.2-dev.20190724":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.2-dev.20190724","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"node build/api","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# TypeScript Standard Template Library\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\n\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - *Linear Adaptors*\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n    - Associative Adaptors\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\n\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nfunction main(): void\n{\n    let map: std.TreeMap<number, string> = new std.TreeMap();\n\n    // INSERT ITEMS\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\n    map.emplace(4, \"Fourth\"); // C++11 Feature\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n    // ITERATION\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\n        console.log(it.first, it.second); // (key => number, value => string)\n\n    // LOWER_BOUND\n    let x = map.lower_bound(3);\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n}\nmain();\n```\n\n\n\n\n## Appendix\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Extensions**\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\n","readmeFilename":"README.md","gitHead":"64e6e2ced6d095633ea3a3fafbd6c5de268b3734","_id":"tstl@2.2.2-dev.20190724","_nodeVersion":"11.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-i/BDcwUwB+aHZrE95+17Bodkqtn2AmXGBX9kETAw1ljkagA+00nLm2w0/x9xl9+LiS8te162V9gd9JEZypFqZQ==","shasum":"2e512975f247fc049113ee5d0487d5f9e6b08bf9","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.2-dev.20190724.tgz","fileCount":501,"unpackedSize":1037427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOBhxCRA9TVsSAnZWagAAsGUQAJO8FUz5ZS08bYCuKQHb\nCCUXezn9ZiFVuIuDV+JvnXP+sFeSPmped1QXG9WEC9DQjI2Ilofn9EBWVCN5\n0gIFkTh+HjP30t+xpbeKA1AfbTirgFwk05zyIzUW4FQsXWhGlgEw3a9p4do3\nI5WgphTrdrizWHoPf43SrqVwjNCrkZ5Gp7gUHwqtwPRpcYpsb7accPoXb1Ha\nVOq8EUS3scK/uZVudrCgja/XFu7xf72AUb9oogXbb/ROi+pQihwvKkeY9cXV\nDChumm/6gJy7NL549RRiFqQBiZYLNkdVLjpSEdQ0XGmRw8f1bA+QHa2mGLlC\noMwKN50+Ml9UiKW7ns6+q9LLJIgCF2wbf51JBLJ8PdCdGOa6ciivMMFmy6uo\nbg5kSy1s9++agq7OqsbcycQWfxiBSyWTbqlXAtkIv43z8QzcdzBH079MFocp\nMQOmJIIy/edC18Tb3i66jwHlShDL+ovhNg4RHFl1dlG7Le8IIveprLM2Z3T9\nP0ooW81KyL7CqG2zs0L0p3DqpUWhNQwpmQS4rDOa9titvTubYpRGAczhF4xD\nV31G6/xaQPIdUOI08wI5oSSSomdnOp2GBDCYqXGtKj5QUFEksA4t/iRPD3Rq\nQlTIDmm3QIBh2PCcQBMbQk7FwQYM0z4V2bP/yL4IUGCtmw9Kx26bM/tsxqD+\nkZQz\r\n=9ErW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGriGdR4EGIc9Fs7MrFKyPKcHHsTKLTDgSN+bQqBaXDEAiBrIMJSQpR366oxlEj8p9OQiy+JhalifUuzW6CElAKDbg=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.2-dev.20190724_1563957361091_0.8297284321089815"},"_hasShrinkwrap":false},"2.2.2-dev.20190725":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.2-dev.20190725","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"node build/api","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# TypeScript Standard Template Library\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\n\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - *Linear Adaptors*\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n    - Associative Adaptors\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\n\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nfunction main(): void\n{\n    let map: std.TreeMap<number, string> = new std.TreeMap();\n\n    // INSERT ITEMS\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\n    map.emplace(4, \"Fourth\"); // C++11 Feature\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n    // ITERATION\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\n        console.log(it.first, it.second); // (key => number, value => string)\n\n    // LOWER_BOUND\n    let x = map.lower_bound(3);\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n}\nmain();\n```\n\n\n\n\n## Appendix\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Extensions**\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\n","readmeFilename":"README.md","gitHead":"64e6e2ced6d095633ea3a3fafbd6c5de268b3734","_id":"tstl@2.2.2-dev.20190725","_nodeVersion":"11.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-dBEST6UF6+7siUhOmhCAqGDjp9pyABsPeXcdg14EhoHN+3m1zIP2TG+tWLnpyTXrwS6K4eerKp2Rp1Utow1zwQ==","shasum":"9630eb4ed899aa2a262d8783fa5ced0dd882dafe","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.2-dev.20190725.tgz","fileCount":501,"unpackedSize":1037911,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdORCHCRA9TVsSAnZWagAAP4oP/2hUfjoXqMCHIs5NeqH8\nqN4GLrOevzSk63oHmpBEO8QvpGmtKJqGpV8WX6rxdK/XKomn6PE2CYqAiiik\n8NVgBR6mGGHQKTn501a6J9ILBEAwohIm9FY0xw4y4/Ulal1+k74bimwIkTym\nkuklRcnE198DpmIH7jYU9LA8ZUeBHXPpEhgQ+y8+/ce73BfDYx/Q9KW6/4qR\n0LN09Ru06k8oXic3OnS9fjxh507u0bdnruKIwhxWJLeaBpeb7upN7HbqcBuk\nse5Txpyf60yWU5E/MS46AyxdpU1Besl5muItTXJiv2K2CdZkzq78Nqv8eGE3\no505uhN51hkXNGepyFczUawNDV6y5jVU7AhKTFIUiJyebkM3OF7lANnek47b\nVH8Gs/Sonk7VS3pfdXzOTJvGvsovGOVNQc5v040+HmuOazSwAUa4Xo6H9PZ+\ntrbxFebqwVvX+CKt+im00IifrFoQIFMN/xWC0G77r8DZ5g5Ca//nMrDZDLLq\n4yGLuYOceCTzolKcQ5TCupqRv9Wy1qDcaAhc2p+1dBYEQHIC4sU6NeJJO1cz\ns3K2alxlfZJBegfoT3XE6BFdZSpsjrbIXZj9GTSM7h+mp3LaNCUtOwBbH126\nN8qnbN11Q5B3V6kXc1dgQt2Xdm6Ks/Nzb8zP7DoN8ZwGDF5PdAkBM3W6v8hc\no5qo\r\n=udB2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHkGMSgBJv/VGZqc/AwnqyaaB+Wp6201un1nR2ZdjUQ7AiBa0bhgw5s+yEHPFnRsDO8yaO0TdyPRaYKkS2dMMw24OQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.2-dev.20190725_1564020870771_0.19085368064466945"},"_hasShrinkwrap":false},"2.2.2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.2","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"node build/api","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"a96924764fecad8b5982c427505c825c06099084","_id":"tstl@2.2.2","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-rmN8qBIM1DHv+8AmZ63dx4V0q2AMJ13o7JXZhl2MCbhHea0C1wFNGpcDzF+2SzsqViJkj0+2d7Idnrp8hbU3uQ==","shasum":"57811169a3e093706d3485ad80fbce25c7a3c647","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.2.tgz","fileCount":501,"unpackedSize":1060211,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdPTY+CRA9TVsSAnZWagAAaMMQAJJAup7Gyp136jJxQjOI\nslOYk79ZOWaMz8uOMSvwLBWYFDfGRF8B0USpbBlF3Ms1bExE22TFLTPgAj5j\nWqO4RhnsUGTKpXMI5U1wQJDvZTPJ22Uz6MWWjKSuCK4uNNzTKBKfxpuYvvi6\nmDuztz5xFMfvYxSE4vadukTxPJdJm1xLuDo7BQy+JBlQew3b20/J5EzLOtdn\nu2fcskiOQR4gL4Im5JGCUKBBPNitP5SoLA69p6xe61x6O4viUj1NKm5UOmKz\nmYwDNkYbcT29/n9OO4CSsjug2c+AprYlofyMKjTAlHzXhC0JdRJmgDDFkwQc\nNvZPYQs5LgRVgPtsW1oRWRS9TjevxKkWFA37G7uuKXYNtisCotKcjS5yhalr\ngPg/+vdMBEH4hqgdhM5v6x39rbftSxbSixVDF0CyTWp8tD5lfFfpiWsiphac\n0gc/uGRSo+wI94p6LROF5021LSyGHWHMvo3l9ZjNOlyb9ZDfwWjBc/Fl2iAb\nLE07Zgc9aP5g8184X2JYI2/8a2EYPad9nn9d1dDol9gmK6lutbfWvryAcQD1\nnXU+E/HS7HNx6OccpPnHbOhnz8jmkFSP0RUVfSs76brR+V6qzW8gnuYax0xb\n/CeBIH3pyncLPy7iAP+Vv/Lm8/RjeZKCK4BGtfriOJMmqUaFH0niZIDIQD2S\nzf9V\r\n=9bHr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAsnGH5VdyXEFCadZLWM6OtbgRJaw/a7liDwmCLtANSRAiA88TyoC3f/1WjxYSH7kB8BOVhzmoZq8LTj+BCIS902TQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.2_1564292670035_0.12005064295062917"},"_hasShrinkwrap":false},"2.2.3":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.3","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"node build/api","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"761333e4a3271c9abf9cee411aa51f71dcb05ef5","_id":"tstl@2.2.3","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-YkfcuFoCfA230B/oXDo1zU6DCBhw6RW94II7X9a6ytwkrFmUtlnTDXz4OGOOD1M7+23uMD/zS1Xie9RUH+wWSg==","shasum":"d975b5172e70b30a6d5c8899733514c80c3a9e6d","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.3.tgz","fileCount":501,"unpackedSize":1060908,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdPTbECRA9TVsSAnZWagAA4gQP/3MZm25fxfQqBEP5hCS4\nP1qaLXo9VwT0N3QLsASBqHSGSsmbHWdouhG3UlmECmMzTYVyzoJcxIav2hpG\nbi7KeRN/PpoQWHADCPSD4QBC2Z1bD++sUugYrp/uV6/XyTNSqpKZkcqRpsP2\nve55qxwVsCz8lTqzJi8Mi3MsXyPLcjUprFgUghymuDtgxrwd+zQ7MZciFz+5\n0/cO1XSuV5lAxJhTAOvvM587sHh1JjrSzvSBKOWc0VqIB/4gF5uYS966ZPzo\nKzNs3nM4/F0DQWFxzEnHi7bHal3UDvhe9Wg7/1q0Lru345JwXj3F4MZWhBhC\neEnH9xHKIgRsQP5DnfhR5p7DnWpCdnhGHchzFgsEvpZzLMDchgaa7Ixy3TUb\n4/u0A0mbueDprCYUaG1Qy5iJJDZ+0GB5iTrD91YxN2kBqDxWxmdc6Rp7/i7n\nCbb1q5qPa296vgi7wTLViUGwCR9WHJ7V0KbxemZXFZ3DuZw5wQJ5aJlvD97t\npJY8aPonXOy2ivAaQin4LW4HWAftEIAM5HCJ2n+17uS2MnovvYq6J8QOmx95\n7CMkm6QsDWuik2mv41vVNSZbyuPJuSH+k5fI9NPhQto/5W0L7O3qrFRbag6w\nMoTxnfygkz6QszAvzq5vOK6+reeRll+jW2uJn9vq0C9sam6fE5VocPHp6bUm\nSp8o\r\n=xIH3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8aAceh3PBrp737bZHOrek/IXOGcJN8VyI/dnhJ0BYXAIhAISzf+gOJW1gCNyskcPDXgXFQzajlydjnW3wawCe1dTF"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.3_1564292803271_0.23075643626858078"},"_hasShrinkwrap":false},"2.2.4-dev.20190811":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.2.4-dev.20190811","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"node build/api","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"02b3cc4ea1d6300c0a2ecf087226d457b1d19fa0","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.2.4-dev.20190811","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-szgNd7oEz5SoIlsl7fYFhu/1VDHmRWGZEnPwSmu6eG8zZs4qi1bUd7F640SAYMteTQFpkNYZyEOLTElksnRorg==","shasum":"a4572d1316555c0cd9b07c2aa44cfbc9311cacd6","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.2.4-dev.20190811.tgz","fileCount":501,"unpackedSize":1060924,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdUCHtCRA9TVsSAnZWagAA+T8P/jkEHkLOw6ECUTlDHV1d\nrZUhHLCfPg5nonFY37uBuhDb+3AsJEhcMiXjMYMTYVzmTyPJ2/WV+Fto4bvJ\n3BTHPuB8Ol6s8aoNo79s8mzv0rwBaWXZZfxCN2l5zw5S4eEItiVXusAVZ7ud\n2Zem2MaCEKZhLovdVVFEK72PqjRZIRXyZy/rVX5+tQlhUvKZuaFA5GKtqb6x\nYF6dsdgdu+MuBaLW6tI2YEhPgTvhtrsKy3xwg2zU/P6y1doNaDkLPQQNfboF\n2oWA6g2O4M2a8jyfFlnZtI1khL7oJ6DDo5n9cPLEho+1CdcuRku7Kv3K9ZJ3\nOhgkPO2dxDqkJxpZd+YfQYaTkxM7VO/oCPeLNR/Vmp0QhtF7y4QM73YWc/XP\nv1r9AON8Qu654l/Vg+PcZ8d4MN0AfPybALdbkT5oX0XMVIWdWpgF7Pb4m/dN\nWuALSx60EsSTx0wvjNCpw3FPZMD+7cV/iMHxGo/FO2LE1errwG1cbwMxnkge\n7ETt2FfXomv1e+lgpn4beL/Nt53Ogz2cBDmrEiEvZnVatbX9rAaTiAKaP2Om\nRvr8CFZKSs2V142lX0QqzLt/VdKW1YTKBmzv33XLYk2Zrir/vMi9aMcr/I4k\nNa/arRknODRv8kBP89ksNFL+ttjTS5KNR7wZi/lH2zTUHiCpAlp0aN2ikCzF\n1H2s\r\n=PH/j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEZ2BUtWBnN9ZwaqevkuWzj0iLP1x947itAdDypxTH1FAiEAkRFR+P4gzpIy7v/xEypEk0DVhg3ohoii5C0dcL4t9Kc="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.2.4-dev.20190811_1565532652486_0.5464786041917837"},"_hasShrinkwrap":false},"2.3.0-dev.20190811":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.3.0-dev.20190811","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"node build/api","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"f29b1762a07915bc632d363866b6fad8b7065093","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.3.0-dev.20190811","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-a/IE/qmkK/n2+IEZUoL0GnD4S2zbYEt0FGgZE0n0YDSGR9/skkKnd/GboVRElMhonpxhZICXHgk8bI7FQ/PzGQ==","shasum":"2f8072854a7f8388db612732d89d3c1a0527547d","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.3.0-dev.20190811.tgz","fileCount":498,"unpackedSize":1060153,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdUCRfCRA9TVsSAnZWagAAxREQAJ8oRSBTxVsXNfoKUrOh\nJ28PWESCo98k/0z1E6STegbWjR9Txa8OwqleUSdIZuyD75zHXdW7CBWw5e40\n3toRxRbs8kRoWC/JAKyejfv0t8KRKL1vDhuHz2Hykby4vXuE10KIhSc3MAAj\nffT6u+wdBcLRUQ9Usw/q4QDKpz827+7Hw5p667XTnttmh/UlAvHLFs4txj8V\nRaUi9mynngw5wxKtdqxct1VzaaJ+juq2iwTw2p6+sElxP19nsL3uauLFDidi\nVMMeowbZ9h1WCBNKlM/lB99klncy++XzrNBWxdzKqyJbo9Wz04RdeIjr27XZ\nUs2PPgwvij8NJzvt2XR/C0F9TsxP0IItuJL1tQIJ1aLvB5W4AZl6MJQ48XwO\nrYbYCu2kBWG8wRNV5fYN9JuGu6Ufvto+Or7OUFahTDrlWkAYY/x4yvKzcVcl\nvybs+6sH9ydq16Rm9mS+QNHLLjvS3ukKmxzEvQ16GFoKGg4qlVvMP2xQ7er8\notfr80M3KtOQC3GTeHpwD6UlJND6MuhHPBj1JsN3x0iF6IzYFdu5hqlIgN/5\ntjCOIEt9dFw2582QUUvTmuv8EpUnIjyPXe5KoGY1Vz3YsY3f65z9naNeFUMo\nvP6w+CYyYoT4OwwJ1EpaqEJzIhxvRwAsvka0rsu5SmmzjHX0skhDbeQ5CWwj\nWwRX\r\n=Z20B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIECyW7ANv5yaBfKMdXnHDcDuYtHlMnP2UitL6ZvzqHqMAiATbRCQVL2C9NA6Oogs5hkZi+5kyygfhPd3VUpWZVSMgw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.3.0-dev.20190811_1565533278736_0.5964141066607935"},"_hasShrinkwrap":false},"2.3.0-dev.20190817":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.3.0-dev.20190817","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"node build/api","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"7dd4cc7fac072e3d6d9fedd61278809a5a5d1b46","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.3.0-dev.20190817","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-LU6xsIkmGoog5hgIoCKmmGFzsqx7M3n6Sh2y/wQDExMdHGYGSHa08hy5xGUOHFuBffxXKU7xspbNwEdzlfjYSQ==","shasum":"8fa8a28ff96dc56625ef8c06ef2bf181fa47233a","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.3.0-dev.20190817.tgz","fileCount":498,"unpackedSize":1059910,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdWA6kCRA9TVsSAnZWagAA88EP/1uLzClOHhiiEjUsFnK3\nhagjbwYfweOANsetIeeBjt4dCfJ+cnv1vKMtfY3H9KOfTaxLX+oGDSl/XKYx\nK4sb30fl1rj9uLoi4BiC1WzWydfBQmOCZ9hyB4B1mRAp/chNyUrTW8Vtz3Wt\n0rpnIkTtvNevSB0iH05O9/0r0KxVO0gGN3+kuP0y33ci8IfZ1q6K6q9lrRvV\noZCKFz1vVdj8xBZLA1hpL2GlB+niNTzgYWu9vxRQg8ItNijCqzGH2ijx+NFI\nQYOsLgwzoCL1JMc7JoKcRifGwGdmYI3znEEvIefdO6abeMJ/K5YHaxdKVOiS\nF42l/28+OaUnE5iBhS6fwChcCevzlvL60RYfMGHaNU3Jk8oVQIIhso39c/cv\n8n/LjkdWS8Ytz4o5CGucpniYjb8wXkz+vUYwBtRIZjt7gFAI58T4PgqvAdxI\nIUBXk+JWU7HleMD294rXpkoD6erUBAGwO23NyDHZB3pjnIjL4lpo0JGYrj/4\n0mJRQz8ikkekcIfW7rGaFEt2dly7sE/nD741bKsh/jeW4HdobCCVUR1bt72f\n46eHdr7Zq+6mYsR9T62s/mSNfCwHBdOMe4R/NnWZlJGDQ5H5dsu1MQG7B7t1\nEVuSTmSkiM5LZJATqKua/wCKpe/qkT4r8RrhZxEO5Fc+ttzWJAKZMeForb07\nN26z\r\n=Ceil\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7dHORfXjYiB6Tn2TqctHqO+8Z3PS1hkoNjjIUbBUzFQIgIM6LKTR5vi08UaemC/OHFeNaE5MibH4l+ktQG11yu68="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.3.0-dev.20190817_1566052003916_0.9247507290434469"},"_hasShrinkwrap":false},"2.3.0-dev.20190831":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.3.0-dev.20190831","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"node build/api","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"7dd4cc7fac072e3d6d9fedd61278809a5a5d1b46","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.3.0-dev.20190831","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-Ui4RFf9a0WRsxnqTJVLDShSZNXz3zo8qw6U+jxEDO/vg00eybq3pwRG/TegYRM688l9XMdr95QG3hKmPRdpsJw==","shasum":"d3dc7cf0192387e4230839d570501aa6ace1ace0","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.3.0-dev.20190831.tgz","fileCount":498,"unpackedSize":1060834,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdaol4CRA9TVsSAnZWagAAyUQP/2KBqcjwT5sJfdeFSdUr\naPIQWnY5y0FYu+kIwfRO2AvbOUcnmmOt10KW9QJy0WMna+Qi1Gg5DkBMqAO0\n2iT/ozehrBK2kY8x/0Y6uutJADhYs+84aChmjODAXRThNN0o+MXpqs2kFJRN\nBTPF/cSQ7rDIaT07P6y6/zQcmGBdjyHdmq5DG7Qrrk5reuZLKK3k/WMnhP91\n0b5VKN/nB1QqJz7UXQTmAzGa1BYuT08DWDuoBXZ7s5jBT1hpD5Job1ET+JAc\n15qYO5Rx1VhR0UQg111zitRnUtA/ErBDTZg6jnNsYOuyXu90MKcY+O3V28Lj\ncWnAUJZ+hYC29r3RjpIZY3LhB2QuCsceVoAhy3a7b5ugoeXMkVpMZXnKlFb8\n7tI+Mfz6Y4fug5H6N9ZTEOIunH0+7uDff+reIQxm/qpf0OyyFpEU4mdi292w\nYwcA6xHMJSTwEKIrMnkww06+ePXAsytV4EAlnrBdfVUVVniCl1kJ6k6vErVB\nFOGevbkGqp1FwIPJWib1TpcRfnMMbMGdcmUFazjQtaB2yoA2i99f+6Wta9AH\nw17ojdzTj9FGPJaVYsui3I4ttVNrvjDF7gB0USfCfzzVWm6YVvRGeE8tOScQ\na+Koy2w+mZLC1cIpGX0pb+6sfhaPTdE6j/W2iVIWwu1sMY3hzgKM5qstNAyx\nWNfn\r\n=uUiL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTguP55U0BG8SlUEWrfhh0XTw/ZP6vP7AXvQ8UGuQN0gIgbs6FsvQNPSIF8xw3IKqgAkuHtflu7kx9342UVsB0KaI="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.3.0-dev.20190831_1567263095795_0.5533814313099927"},"_hasShrinkwrap":false},"2.3.0":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.3.0","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"node build/api","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"6ba8d64869647183320c414674c741469d9cb5d9","_id":"tstl@2.3.0","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-9Idl1T1cbl5RpVFBMlmfKivv+AimqrNjML0Em2rTBMjKcob1iNXlA7P8E5Lc5P59WEHw2YwEdd/WqyyvV2k7Vg==","shasum":"87b88ef1bda10faf435d822ba0e724987071e61a","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.3.0.tgz","fileCount":498,"unpackedSize":1060821,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdjth3CRA9TVsSAnZWagAACiQP/0A5c62n5z5fl5wFd5cq\n6ABCJP/wByWaSKfNaecrki94XA2trPK/BYnSsVpkovvm0l7QoGRJYGd6BGDg\n6SNaZpIKYG8DXDScSeCbuUIbOwe1YN/c/Y7Ib+bnnI6jS3O+CmoU1qfF7Swn\n3zo7KPfZpEMKnU3S6dXWYGKWkC7/J4Rq+QkvsQLYvMp7o29b/LKaqhyd4J8M\nm9YnH43c9IMZENlC/VTbqi2LBFoXJOgL45qrHXhCXjAv/vPJWKgOvz2a9V0t\n2j3yvhzIrf4iAfUIhBY9iTZWsix9i/W2gvLJ3rEoFlLEq04MsxqCw9/XMllh\nTJgNT31bl9MkaU4ck/zN9jiCo97z6ivwRJnK2iylP/rudN27FmXlcrnsjcb5\nVEEJJCe2ePsagHcOWK13yw5ViR6O//flE2ucqdx9LnbdKi5TTQ3Bt5t7mxMK\nWYms0chH30uYcjyHnRTVelWqB07SJakR/oYw6UPFVafDq/0HqDj4kWzdvTj8\nZGpR+VRtPDA1Q0bh+eoq/n7FuY5UM03ZZ61BwiygeaMp66+YykD9JTadLBRr\ng2xBJ7C52lVuZ7u2yWTu0nL+JW6EtF/4dAFMzmJS0QAgLzl6XRALFO9m7gY9\n7Bm0nIGvK4qiEG0xP8ZEzc+VyRpbc/LqZ32sifOeyxbBKSCEhhUnSPxXXA2/\nanqv\r\n=MIq8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSl35G+BTnG06Y0ZjbuUJ1DWgcIqLWZOEFITUtLCoOFQIgDk0cTFU/gyPBvP0HzoTd8CB5oUD+XGl6RwItKA+z+zY="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.3.0_1569642614295_0.8112653909070839"},"_hasShrinkwrap":false},"2.3.1-dev.20191024":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.3.1-dev.20191024","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"node build/api","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.13.14","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# TypeScript Standard Template Library\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\n\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - *Linear Adaptors*\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n    - Associative Adaptors\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\n\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nfunction main(): void\n{\n    let map: std.TreeMap<number, string> = new std.TreeMap();\n\n    // INSERT ITEMS\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\n    map.emplace(4, \"Fourth\"); // C++11 Feature\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n    // ITERATION\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\n        console.log(it.first, it.second); // (key => number, value => string)\n\n    // LOWER_BOUND\n    let x = map.lower_bound(3);\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n}\nmain();\n```\n\n\n\n\n## Appendix\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Extensions**\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\n","readmeFilename":"README.md","gitHead":"4a908e8331b502d56ff13906c5cd4863380f60ee","_id":"tstl@2.3.1-dev.20191024","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-I4ifqEUaLbeYXww171RoXqwgbUCVoKQnXAcQPquhaHAs98Kom1VlO/SEwz6LgeeJLM7Iahm8yBwlYOkK0aYKTQ==","shasum":"10ae38edd876776f3dfdc02a9782cc5c889c8e55","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.3.1-dev.20191024.tgz","fileCount":501,"unpackedSize":1043614,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdsj3CCRA9TVsSAnZWagAAN90QAIPg45vjyb/AV0ywk35F\nwANklTzSJ4R6g4NBG/ajxYqWN5j04Gj1Dg9kKP4qKFowR7/z/zj/Sd/tX4nK\n45dYCJuiLRCvuEkTP+NsrWs62NY251m6+fKp8lqHHlbCmY0n5eBD6V75XSNn\nrgNnOv3J2PR7FyygPQdPfslOxr4d6u8abnroV5PYZjfajt5c2KhcLm8eTrD8\n73g+LNT6RcMG3Ud/lqiAVSX6h388AZE4jT5wD5tCMyiMoCVT4spFgVZuFFwB\nBTbt32MgIhEzEMlGXEyM7awibsuewNOSA7V0PQBju26daZy6wKlgG7O0tIqK\nORhyewjQkN6vCmxT+nw5dC58fj7ZRoruLmOxWbrFyBd7JsGIVfeP8JV2qA/x\nTtl+N3ZlVdXI5NB+AKI00f2YbKiSQcC4+xK0HPWusQu6LcdJUZ0vfl5y5Ode\nE2V451LY8Tc2Y7JeCkO+SgMfFlgrsRjvad9YRqV+O8c8vBpSqcL4SYJCHRdJ\nMHaqhQqhxdWU33dgh34TohAtYLzpxSyVy7INwJWaiuzGral+EFmeaqF0pKlO\no59PXq8rVT+ODWilIoAzh4gWKDRAP1B/8/rOBQQYFySS+clTa8Y9CZGDqo/j\nbtvZgrbh4iNzBMeimtDQjnG0bAIBqZks/50Bp4Ppy0fNNmbziDMsuW8u5vbi\nrlF4\r\n=hhSp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC03nONwvwv0yspy0WGwnmZ6t72cpdJ2bqXFGUtaddXMgIhAMJhMwnwz3JVAmt9uvWeAHpYu7fURN+ecAQii/gnxfiW"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.3.1-dev.20191024_1571962305420_0.6695699282970053"},"_hasShrinkwrap":false},"2.3.1-dev.20191025":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.3.1-dev.20191025","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"node build/api","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/mv":"^2.1.0","@types/node":"^11.15.0","mv":"^2.1.1"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# TypeScript Standard Template Library\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\n\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nImplementation of STL (Standard Template Library) in TypeScript.\n  - Containers\n  - Iterators\n  - Algorithms\n  - Functors\n\n**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.\n\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\n\n\n\n\n## Features\n### Containers\n  - **Linear Containers**\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\n  - **Associative Containers**\n    - *Tree-structured Containers*\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\n    - *Hash-buckets based Container*\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\n  - **Adaptor Containers**\n    - *Linear Adaptors*\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\n    - Associative Adaptors\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\n\n### Algorithms\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\n\n### Functors\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\n\n\n\n\n## Installation\n### NPM Module\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\n\n```bash\n# Install TSTL from the NPM module\nnpm install --save tstl\n```\n\n### Usage\n``` typescript\nimport std = require(\"tstl\");\n\nfunction main(): void\n{\n    let map: std.TreeMap<number, string> = new std.TreeMap();\n\n    // INSERT ITEMS\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\n    map.emplace(4, \"Fourth\"); // C++11 Feature\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\n\n    // ITERATION\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\n        console.log(it.first, it.second); // (key => number, value => string)\n\n    // LOWER_BOUND\n    let x = map.lower_bound(3);\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\n}\nmain();\n```\n\n\n\n\n## Appendix\n  - **Repositories**\n    - [GitHub Repository](https://github.com/samchon/tstl)\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\n  - **Documents**\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\n    - [API Documents](http://samchon.github.io/tstl/api)\n    - [Release Notes](https://github.com/samchon/tstl/releases)\n  - **Extensions**\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\n","readmeFilename":"README.md","gitHead":"d1a5c58f2f477dc64c81627faec6d16bec75fbab","_id":"tstl@2.3.1-dev.20191025","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-9Qw3HbquKkV4rPmMlJbFQHPfp/b74AZ8tQTCPEM73C8eKbOftpxW0zhlZ53ODySy6zIB5HHuOf2tzsDCuaQQpQ==","shasum":"107a86e5d5e3ff904edcd9a4f399400c025f2e6d","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.3.1-dev.20191025.tgz","fileCount":501,"unpackedSize":1041137,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdsk0jCRA9TVsSAnZWagAAmtcP/0NBvOvAXo6ra3KMWk+p\nu92oYC7SgznzPKbI7Wr8scBC5gz4vJBBhdANxJ2BOsZOFJm16SH9RVqt8YIY\nASxxTA5U/ItK+jSPi7vlCsLX3uqTGEUY/kybgULQ5XMv/wJqgdgP0lx79QY3\nyw+MD6IsMhiExla3GzpOhqPrQNPGCMuB172xZztTCHVxP/Zs4iwjBBrH9PdS\n+OE5T/YBNhEgt25U2FVHpPigs3Eyl11Sql4o3icUCndOzLK0UgCOKFahDGz3\nAyeCd2lPJhuPDA8MEIk+B3hqiNwFOGPdyrBV2flB98WBGUuBT+Q68//halTZ\njpU/4C+nss1b9bqhr8tKSHMJU/mWvApnxAI01JRGJU/4IBXw99MC4W2/tQ+9\n5K1NPcv+a8MfamcDuFh3B156Ey2q3jcKtoZ27aiR8rzoTRmRW2bsqii3d5AF\nMYK33yH5iGe8vZeHjmUFZBk9Zb+oGhiRcEeHgICokaUL+Ayx1Romslt9nfWK\n1z4UT5P5M27hAyc4qpKlBcJoq07YQHCki+vCQ/gej3/L2NOcTtVYwugnJKBh\nRDB/PV8LWGQrgp2KfYSkzKcdByzAjFLM071/55jufQsBtO9yON7c3aLnUjKZ\na53IofN9q6iJ52dKscB2P2UQ1QBC8GNJDwHHqREj/y8dBHWLU1COiiKWqsk+\nAw/U\r\n=tDce\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDEZ1sDPgf0K8Bxsvo0PqPU9ioYVVbm97HX7FfutZNjhgIgSEAMy0Ze5vZU/USDqRXdJS0vAawCy/kHXFAtGpqiMko="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.3.1-dev.20191025_1571966242755_0.3777203212349385"},"_hasShrinkwrap":false},"2.3.1-dev.20191106":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.3.1-dev.20191106","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"tsc && npm run test","clean":"node build/clean","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![Build Status](https://travis-ci.org/samchon/tstl.svg?branch=master)](https://travis-ci.org/samchon/tstl)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![DeepScan grade](https://deepscan.io/api/teams/1932/projects/1798/branches/7792/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=1932&pid=1798&bid=7792)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"542c9290a895a868344540c4a315d36fc531fc1e","_id":"tstl@2.3.1-dev.20191106","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-zZzRRkwSdC9R2fGyxLdNTHnQFsTAWQfGHgx5V3C/VWxq4v4p+prP3rcd2/grHX0K3RCdOz8GIHbXDKdm9nPVDQ==","shasum":"892787cc95032295422989d06fea22529841efb8","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.3.1-dev.20191106.tgz","fileCount":501,"unpackedSize":1065461,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwtlHCRA9TVsSAnZWagAAE7sQAIuXr9Z6zWwAI2Bf7clm\neZtQXbTde/vqN/vgkMufIs0VOk8BpvphkhmG5TPz9DoBHLhUc+NZRSHNRl/C\nQnxNeu/fTeUhpKtg+AImCvscFWlVJi/WaF57LOnh6aPwgEc8N9SYzo1FPKdU\nqylIgA1dcCT1FfvmSQ7e6Y6cdQXf3sBYli2ksAAhm0QHhd72RW8ey5wSPcMB\nnaRxWAV0fWesbfiDA5sbH1+vJeUHqtDkfI5tljR07+dKAGS86at28Y0KwD5w\nuVtmAdL2dsCwtkcg7opvp0MtKLSoT/wB5D4qd/l4APNstQ8riR3bPwTyMF+2\nKI3Pyf+emvkE0leI57WMLVZDoOo3r+bFWX2aies0d2NQqx5FS8du/rTM8F3W\n6WeJ5YkcdpaH9IT1oY2xiQzUbyNreyK0/INwcayndSY6lYtOLJOgE3IiUA1j\n1hVSZydJ97gB7GqSk+wSWvMat6WE4W2kesm5OwQxc9HQGlE5dLEgvPuZHHlA\nctgwWIqakpyvjJ+eWi5vcorFnuF5S2zmgJmAs6tWqiRjc1g67FyaEwCiCLuk\nkTXv9qUbHKLuz47OJ68aAwhTAGi4c7OJ6XadRTX0UsOxwZ7rALOhgqOrS7AW\nstxb0IZ457ObJDGvOGsYUnYnOnQ3CMuftcsNfkC64qyrh1YGbH3o3Eu4CoKv\nH6Lm\r\n=k62p\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEjJ7SKuQ65tcOEUCLo2ewUYE1e4Xf0QBWJB3ZO8QnNkAiEAwuMKDjirqUKIn/gwaphl0MdqS7fsC6AeGk7jY+IMLzo="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.3.1-dev.20191106_1573050694747_0.8141869041811698"},"_hasShrinkwrap":false},"2.4.0-dev.20191122":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191122","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run compile && npm run test","clean":"node build/clean","compile":"tsc","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"b3b4e4da5447c79ce150211a7061a2bd0006709c","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191122","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-JrIOeacdgMNxJBshxPB3SayRlas5Q4PtqJQfEy+xYUhbM2pl76cjXPTJF3dc+taAB/QFV9dDTucrewXxDUpl3Q==","shasum":"c5c7e253bef661f012b73ceea17ad2352afe3daf","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191122.tgz","fileCount":512,"unpackedSize":1088977,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd1qSLCRA9TVsSAnZWagAAM/UQAJL9G3swAPR97ujqYsRb\nKO1/Nl68l3hxC9c/sWW9srX54QmZhQ0R4Y/obZYLPOw3mSYWX2ww3KZgxHZU\nkU2HgngDNmYhstAqnivNo1Inilb7z3xgor6OjQjVxbvyEIeXq25N7GVSb72R\ntANmfZh6mDoBl4sqVPn5RXtkgvwESsqnc3FnDzC4HFafoMBJOij+uiyxEPEY\nCsZzvuBqxkobEHACOtzkapSA62fvGnVHwnuLbQrqw2IhD+o9GilLpTEfbpDL\nV6JeZ1O2hAqFBYhlF4paF/273IoyfLLx38ooMrCKcpVKvoMj8JyExz+fMC/6\nv1pjcLeaxf4lYp+pEFjGK8TfWTy5HC5mYumAt2TeG/LcIZNvrTuLZNinhSgy\nWqxm5TAvYI14ScP5pjA4ozdbjl8CRTwmx5/jT1r05RZJQGTZhRKqxlsUWzae\nFeyKsFuDnYlx0gpyajBztnw3h1SMWMr5fRpyJ+gK2tkJd5Q/RP8N0EFATYnu\ntmMWxiMyw9Wb5ek6nDf5fIxrD0YGvpiZuqpu1QU0g4iYRIg3KpUIZPeVbPys\nXcWPuTTWlO2h1zb1c/46fvb0byvcPnvHN2m2H81HZLV1u3QudGxIHHqMbdOm\ngvh2SoZIQOpfG0XXCyn0QQtjTZYskmyto4LwmmIB2PoIz2OClgJj2oAd+M6E\na8ps\r\n=s0QA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCw8ul3MWHns/Qa0byVaK8Ig8niog6IvkUcZqXh4Ql7awIgEmb1GIjPrjuefWKGT1dp9gr3mRhhPRgd7PHX9xOAUIY="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191122_1574347914334_0.50727412135539"},"_hasShrinkwrap":false},"2.4.0-dev.20191124":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191124","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"4986829c649ee4c0458a29ed3dd30d74a61244d1","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191124","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-8xOZab1lad19ow+l3ksIUgPy+30Q7aB3MN13oxIhdzTcYe4ljD074LubkrjqqggOBIrwRk3kmXEITiQbdYEt/g==","shasum":"08ff5eb640bb5bead381598d989ba53d16cf8779","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191124.tgz","fileCount":527,"unpackedSize":1103072,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2WcLCRA9TVsSAnZWagAAycoQAKQXfYoS0gLAHsgqJrG/\n/SOzS41sqDtT6dMoPCDIwlrsh/kAochFBusn0994x9WJ5flol+YU5m6AbHTI\ndWBb8ESB/iZlkr9/8MGqNI0JJOwRJgVALV6RUWLlACOe9ytQMjjk959b0jik\ncc5kvXTKOxSlkwkJVKh17BK/W53G1lwYyhzqftyTCvptSgmTxOQBYRVIxKEF\nwW0/EHxuzMC5SW8WoWzO4/uzN21i/ynHmgB1stmizu35vci2ujfyOiBbpEn5\nb9fVJn6pls5qcWU1ZuThacpaTkuFWQ3NbGTyYJI3DLIwUg3gsStRqOB1td4A\nILwmARE9dbK+n6WNJWwN5ggDsBD7a2XcecYwSTqKjMV5O++IrfLE6uB81VRH\nFMN8M7MPUeZQjufMiHXh0EYysrWP2ouavcDdACsXG+58Bt7W8bqD+p4oNtoF\netz0mEQrGdG6qs5HoO/T4Ehe7Dml3P9ezwYUini1oHzKpHbF4h8+0EcQ2rUz\nzUYd9/LvJjQd42xQ/OXRlfIQeLJU6VlpDaxA2AM8/SAHmOALFI3vRQAeQ7DB\nbjNuwiijwXsQRmw1Hhw8Rgfr3926yezcgkzt/MrRoWxn1x/dmtMA2+VUQA6x\nVzTOcFPWYC7N7LR53EJz5V+BZAP0WXubRxp7Ww6ZArPIKT16SWdBm7qbcfEy\nq8De\r\n=6ChR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDB68hIAW0bvdLEFdOYrlIpGI+9UmYek+VKpHgwQXiMQwIgS/baI0y1CLSR8HZ5VMh74X9fVTpbiiFc9T5D3fki4xk="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191124_1574528778134_0.7719384055476983"},"_hasShrinkwrap":false},"2.4.0-dev.20191125":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191125","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"60dd605e1d8dab516ca35a2fdddf50245d2abfa2","_id":"tstl@2.4.0-dev.20191125","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-9c0rVzwj6LdX4OyCA79kBoPn/FqXshuRGOduwtwlqz+zATV5GYWCX6CKRwYq+tL2+h5Cwj2gMzvOzv2V15XDCw==","shasum":"b37fd4731f425ffb142f3d159499efecb94cfd02","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191125.tgz","fileCount":524,"unpackedSize":1109213,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2p2PCRA9TVsSAnZWagAAmjQP/R8Fz83a2Uttx53ggyqe\n7nDlOVx6iA62LwDXLOMTkjSPIUo+ftgvr38otZZCc1Zd5kUKwM5O2cGhZrFn\nsyY9sPnYf0E4/c6H6EfxUYd1KZ7Kd3wTqQzFaixvR486uK8QuC2kd7vxK5hx\nadU7kWPxw5ymqYFhHuLMuGTalWAOI9RezAXAo3c7wQiMLTKxBIGSuVKbidqS\nCPqSuu8TPgZY0kdEYoSxjqWtabnLJJee9LTKOdpRGPeoa4U/38eGZrOIsir/\nNK4SyYXLa7r9yk9o8W5yPdO1WT1BNNa9KB2wk9HFTJLlAdq558PyBCshgx0S\n3a61YR9lpfsEMMMRl9yJRK2976XDbiDm28jy25qGPfXTI90C3lYYjzosjqMm\nzIc3Tt2R4SZPuc/4s3EuVQm1QZT/z3FEtMrlWI6/C+aqd7GEeOGiK4SqdP+9\nxq2USVfkx/REJs9K+v+2gbKtDDQq/4u8pza8L2wOCYwOOfc3zH/ljCSLruLQ\n6ow1/2dYY4XZ0Cs6Oo65pqnr9SL+4lPMx7ePlgDeKHmxNWiZXEp7TMUIjDsy\nhnLgbvBd7tuv6S0+6HTcjX3fihN1WK/XYCH0gtFKrNdtVJ9yfzbt1h86qZQz\ne8hK1SDyYfzHE1e/MwWyUrRhlYdsEmTZ5G5iUWTZ1gh/uBX88hIXB9qeyzpa\nL9Z5\r\n=xU2U\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEx2bd6wyczjOds9sdpJh4/XT+CGxHEkXZ8zkYJONiSXAiAwHoIRdYLaZ4rtkJJfT9maPTLBR/n2/aeoSB1sw1+FXw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191125_1574608271129_0.7204438882211674"},"_hasShrinkwrap":false},"2.4.0-dev.20191126":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191126","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"935aea88e544791769b1f9d5b4a139b355b3a604","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191126","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-/0x55aTZbxuGBgxXrM24u9VZD69qi0uLydkYkt+qil4Mpn6BwnTIxLIawZAB7aluoFQgVlY+GUhJAOidrQZbew==","shasum":"874601bbbac873ccfe15be676b42cbdca1f7f0ea","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191126.tgz","fileCount":557,"unpackedSize":1162206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd28x/CRA9TVsSAnZWagAAJPcP/3o/IO3ciOPyMGMnffiQ\npKP9Q8yCL0Bw2WOg/j0bbAN95CkZ+CFS0DxrMFryn+Jm3oyGtT0XzAVcS8Y7\nEvxjF9tjswsFrA3SUj+Ta4sTzVJcQMhqFKzqr4N2UC5Wk2UgK0C9HP9Q25kN\nE9cS9+CJqBGiHr7vtRQYPOATzfXgAjYbPtlaxvFrNqD61PzgCKwwCeZgh/Nl\nlAPJP0aGTP+Y9oWKQUsTJdUR3P76vvv7BUw5yma5CTB8NP5Er6APc31mHtkd\nwumZudx2pKrWOS80pe+6OKOQVOs4oXHPhqLq5tl8sQCVMn5VjDxWe9DP/gmk\n1lLjLb/Dczs8pG0hulbLdZCkoaqFtQeszEnHQH2eGNaGsC1JeN2vjIvc63xh\n58jkZyLLtChhKpqbR7cg1BXCMld0cF7PstqR9trffOEOPYvBvMw/EHG7cysc\nFDZRHneGbRdjeceZxtQYBS0PO5CJsG4jw9SsPbSeYiazLmXD1q07Rs+EhXxU\nE1/ItiZ5Fk8dgKuBJWL0eOqN8LQk96kd0sqMzsB/kY0EL2lU47IXz8Dg92KW\nPgXIrvFTpCL1BIqELeKZ8sSj2J55oB1mk5uXoZcDHXwtTapZC1IKIwBmt9qB\nJ8b9a0GPnwhPgKv1VtOfv6/vVEoe5Jp6aMFQgt/8rK5pz3KB/4hi1M52f6dw\nuC8u\r\n=67XD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTW3Bw+XL5Vz+HeTv/tKhxUTVFhU9GD/vB3XAK1PWZugIhAJ2iCyUKfRIkurBaeDSC8sBp87+O7Usvbkx8c3WrxVAr"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191126_1574685823295_0.7716347074311525"},"_hasShrinkwrap":false},"2.4.0-dev.20191127":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191127","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"a963c1c33708cb396641b1532f651519e43a7982","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191127","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-YXUHed5ybiR6b5NMZVAhSVvn/N//quFK1g8b2TAKl4eR82u8k33hY8ZqJICChYxqO4CsUn2R50ehE5Kocdr/MQ==","shasum":"8fb8d1d8c6b859e0300104146f45d79e23016900","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191127.tgz","fileCount":557,"unpackedSize":1153805,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3nDQCRA9TVsSAnZWagAA5H4QAKKQWWr4eGnX4ER4Qsed\n5srfCLftcpgIkxlU72u0iv5jQOYN5r7+vIIwYJTxL0iX7QTcUWLQ2cRKmnGI\n5PPIdGox1rbmZ4/foxNjywM+1jXS2LN74cD2gSlPEJGyWNp+3TXit+HsV4E4\nmH1TJZs6IXIq38Aqr1Xz8wDJqRZI8HgU6x/zGV74LCa8tb3CKPgthEpFZW/K\nlUi7XMoRS6J2eK8KmeRqyLHI1WmCXQYh2IU5UrArgintKKk5HtF+gxZ2Zf8w\nUpIjBdktWUm6O9utWDpFMOb4TrGioQFe0yXuJlEz42Llxa9uqVq1xHrKOlzs\nHXbpzjKW9Xm3eB+LGocAySJn0FgbYqLMAObyIprGsFH1pGRRSl8hn1OxdfRT\nO6WpHYxpis+MaBR9d7xYT05Qg4VpAqTRWVFcUH56oK3pVP1MTNsB/YW4VmI+\n6EBqgrKPp3G75CyIuw9Z7cZ6Lok29hln5UaLyw1+QLC274CesP0i3McmdlsE\nI5UjGJ5vXZmz8WLlQfWJ3yStem6qL2METljR9v27nxJgCkbLdH2AQ6utlS5v\nAT6RxOl9h03UY9Y0AXhF6cIoGCVb06CrUQeF3AGnQvoWBH/VuJR5cveg7+QG\nI4y7JxzJ2gNYc7JDLsSzmIAbhI5gUXY5RXbUKwafzyzMb181uYVvt46xuaUh\nVyuZ\r\n=HUzm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRlfdy5qdkND4J3YQrJ8gYycCiYLn/Bkg78gIKtTbHJAIhAMA2cdtTMNHXDhguYP4OO6MLBHbggvOVrxuQiXbp45sS"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191127_1574858959909_0.3668839600798848"},"_hasShrinkwrap":false},"2.4.0-dev.20191129":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191129","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"4d36915f007704a5bf7bad9dcfe10c756b79ac70","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191129","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-slqjsbwhBkN0K6gscVmFfAwwPthnjGYwafClcvopzaMkRHNTfc6RHSllvIeWaCfw1Jugfy4AQDx6phVusKMkbA==","shasum":"73f134a7e4ae259c0d8b39106286f8b1737e6169","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191129.tgz","fileCount":557,"unpackedSize":1153157,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3+RiCRA9TVsSAnZWagAA5m8P/jOezRweMeWJIOZ5NIE/\nQlY53J1Ib5UVAN3Zu8jsOEmWtUdx7XOrYgSoVMPjCRku8iv5LN7c2v065Jh3\n4ydoPlb0Eneh3fHkga7Kr/AvguZ8JD+YzoNwjlPxYevyCrCxmfHyd1ZJ8VV9\n4YgA4h9/gS3atrDiWZXC+hiKQGpDlLpouqaIlIsYeyADdHw0mIBOodMP7zbZ\nScdAveueikijrqo7XjfcGp1ct5RP1QjU0fjUn4uNVhrUJZRnwLxfTfkHTZaA\n1DqVASNF3BGL/fg4uf+iZNIDpv0C5usBVzGmJh0iUmM7X2FUK28RW3uvxrPh\nWROnQq96VD4smGV/DUjlUK/eZgQxqZD8oAqhHWqXOR/cr4upSRXcNGnRJlxS\nFjqHgH5N16AO62k1PQOKpfRoBvGtNcejoZ5ZjC40WbWIpNpI+PIKVUWm5hRw\nEb40C4qEJZC59iB9+kJzuJPB4uPMcNL3hPlFPz1MMOwQjxI4FE8PwRPN1reN\nAlSMFdjHSWz4bQuHeONfdPJJKQTgtlE1lM3DC8WgZKain+DbnukWTQytGc6T\n3KHyhXebKpzPKO4no44g5G9Bfy5T221gzJVD85Vb4wvDDm6tHvSJ1UnmVujA\nXsjCbRBZctI4d9yK0NyD6+h8ysCyCS7q7WZRD/cOYiL7WJT5qKFxqlYEOzat\nOpM9\r\n=UmBt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF219oz0k6J+ilNmKM0xNWSCSLKD3yogLS/lXgby6JKWAiBhK1O/fbMtVrDrRBPlu/7/5EXgV68n2SEMWUyOBeHkYQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191129_1574954082366_0.7900280516201095"},"_hasShrinkwrap":false},"2.4.0-dev.20191130":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191130","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"4d36915f007704a5bf7bad9dcfe10c756b79ac70","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191130","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-t1UsSGdMqATh4d7rQSNK8YAq3NYLvgCgCc8Fq1tVRwx5uGATBMreU9x90mm2IjlLT6l9h2IjNgA5rKjUIUl9Pg==","shasum":"cc5b8e84417218dbfa67478b47f1132e212c5676","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191130.tgz","fileCount":554,"unpackedSize":1151611,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4iocCRA9TVsSAnZWagAALiMP/AnMuhtUt8/8PCbpz1Tz\nt7axk65fAfXU2VJtqZD5/XuqYchmXDI2GN+B47fhnf1jytd+MuJ9YVPsAiyQ\nij/undKxHNN8JifoX0d23CCz/0ElUdjAeDjgUwsTk0u/XnxM+1G0uNAi2c4W\nHMF2aI/K7BtyAVVtTUeeQUR/awrNp+w/Ac/+zqH55cUQA0eXiqT4/yp4ebL3\nxyDPhy/XVXKnRgkNNXdn9drj8XjnClcn10DM30TbtFd2dGhycUSXRRHTjemb\n2OGJZdT1oQhZaLeC70hhVqeheSk3x93Rgcf+3QziYrU+uWGXtNSoF20WPCnx\nwvX+q1bYmDWK9iwSaaF1OPfGIn7Tb4CHwQ/kkUWsXxidvsmgYcpjyi6VD7B2\nLa/2UyvWBvD3Lz+aFS0OgzFVx2NWEYOoL0XOvFFb+z59B8MKTFeSwgEtzxqZ\nzj1jt5CJdZYAzDyNaNSpbcqMV3k8XE5jdAxvCBgLNOgh3W6+4hRyLcaesK8v\nOhOS8PuQp/Tx2Wi+wxi0zxSGhI1Q1CA3y96Pz+DhRpo7r9wL2Qx5Kqvn4dTo\nVHFWsTEPzQa36n95LRx/77NjYEyCxI7w8GrppvCFbFxru32yXVFPYFJGN62P\n75oLpQh4pnEwDhKqHL99gW7mgeIml18yv45Ee+tnYGlf5zSvL5NyMA996Qd0\nPVg4\r\n=IV5W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFnYMMc5dbbHW1DYP5ODKoyZN7ni3p8FbvX2rl38gf3KAiBppJbjHJgMAHu6dKihI4oFYcNSlXSNZjZwgeVm3a2YDg=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191130_1575103003934_0.6549055482840442"},"_hasShrinkwrap":false},"2.4.0-dev.20191202":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191202","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"3f901fcc1b6ac92c211c176decc942ff2822ac32","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191202","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-7yYhfXPFr23TYKhSFslkm1k6S10KvIJpcqn7EWpJzaFlBLFauSK8+T3sKSZt/pgK7NTqPjVIy7gSAtvB+6GmFw==","shasum":"035a760bbd99c3bac13c378e2ef21ea9cd0f4862","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191202.tgz","fileCount":554,"unpackedSize":1151996,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5NHICRA9TVsSAnZWagAAdQIQAIjiUVKwIRX18OksDyBq\nOpjl6TgK7IwU8+m8VsXGN+FoCgOZ4cmntwqAckUUWCgRtDI/rztpIWWy9Bes\n6jAkBEofJ2Nej0UJnOvF0U92EKRx5jRa+mDhuaYlvv/+GHLQyQ+a8o5jB8ze\nHX67OQz3eBle56AkpNI057R12yV+qERFQuJeS3lrLk89aFw7IAZDQn49lelg\n7lKe61Bh9XzhwrfaSDtrKnzUkIeHua5SP5pthL1U1HtD8Rn4qNOCMwW9pLIY\nHtaB6kLaM/CTor+e3B5ODtvQVZuTkY4bXg5VVr35i09+Xd9pQOOCwba/d4cP\nu7eridwho5ns5GDSr1n1EZUZ3RSZL6L2TRoqhmFVgi58D2mCkbDM1+/Ey0vg\np/KOtjPF43FVHHHBjoRsStlnzdUk694OItxEin2K+ZUAwpgeVzYe7C4c0mGy\n3pXqTARlYDgyXaiWWozxM0wiw929VT6XvIahrDfSdsBdEokd/STltUdqxE83\nhKCITRvUWpkHqkhqKLyst90vVSlxx4CPPAdwX15f9lwWfbJbGScZxKR+oNvm\nS6inTerlYDRFj3q4xPEuqt6SpkBFSQBH+tIJgaHpg6k+10D0l7Y2PD6xqKYE\ngoSybg/nal5mQ1m51U+P7rggY1LwuM2JA6XJ+VgZKjAqyadkirW1oOBBsZ2j\nGg+X\r\n=4mEj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBvSsn3BbQY7jTOlK4v8Ds37v+tIdHUrEy7XZe81ufCsAiBqLpEGY0tlHn35IkwFpWFXEepZag3LOxBc//RgzNRwhQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191202_1575276999677_0.6750274485137573"},"_hasShrinkwrap":false},"2.4.0-dev.20191210":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191210","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"cdd7476fe97ad2915e9dce2945c9d039f1cffaa9","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191210","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-THTRY07/ZgAOMTyWo7i/AxHqjCbUcQupqdx4sRBXCkVUyYleOeNfmOCBF09ejvYxAs0G5V7VHf6Za1EWYJdm3A==","shasum":"ce42de717f2d8fe61734d6d80423ec3e77537ac9","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191210.tgz","fileCount":554,"unpackedSize":1151797,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd71NZCRA9TVsSAnZWagAAzEcQAJDWA2A/XiFsHGC6nJoU\nhh+LJbQcjCfUSWzwfp4lQA11P4ku+6FxpjhoBwRzICXh2+14NsN8E09ewPu4\nQe4hXYfvy75qj0cJuBa/iQ4OetsCrnGLNo9J6Hy6n7CnYK7fRHgsW3xhKenI\naE0uPUiodJkUs1iokDsCjrVLRd0EOiAsK2T3Mf/FeQ7psNkvdyHAjZNby5dq\nuS/xI5nefEEXnmBzEoLqhv4fArsMwMaGfUnvYmNpnVGYKVvHOAs0Vgs0O2Oz\nj+mFz/o/yvviZeCmdOLWMphPX7s21QbZwyI8pdpDWZOC+Ab8kBk9KGXUxYph\n3Gm3KqICDz2B6+ktvqEFdTj9Dz2RNcJg0Ob/RInvsgohEPiwvA2lntymqTXk\nSZmBkF8DMu0k/Vdle/HB7wFFAHX9lFiT0jKj76CxIAWukMSS2MLabLB83zdW\nZfcMcbrlO3t15OHkfylh9mqBSjt7rQKQyx3ITYi9LdBBNc/Y7a+2pgnhtEat\nhhYhKl8CDcg0prcjMR4CPXI5St1SRSx+KgBQzlV+moidNC564Gmw1RzzVMQ2\nWJF5lYHaMoKu7SwwVhTavQ/h5qPyE6hlZVI2qLQBeUBcFKNQTkL34JkamUP3\nijBrlTPMv7/K4mtG2xTGIXuNdWTSjxCJ0zHuHhrLXB85mDFsicoLgxXphDiW\nNS7y\r\n=VKKn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBGC/WJ1BhVwfo6Owf9ESRX90SGm6MfLLcP383LsMnx/AiBollqNk/qf+qwslJnS1BLEbsPeOS6ztmihSuvzm5J7eQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191210_1575965529371_0.4748954492061892"},"_hasShrinkwrap":false},"2.4.0-dev.20191211":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191211","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"cdd7476fe97ad2915e9dce2945c9d039f1cffaa9","_id":"tstl@2.4.0-dev.20191211","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-qUTy+KOecMMZZy4YVBcUa0MptXtPKk2ftnKWrF4CvZT2T2uFlX8lDGXkuzVsjzj1l8NbiJ+ARn+71kG1ceUOYQ==","shasum":"25cd6e46995cab63050121279d8f8d96912f09fd","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191211.tgz","fileCount":554,"unpackedSize":1151804,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd77SXCRA9TVsSAnZWagAAV28QAJajhC9JfYw45ES7BbiK\nNrJZwDg8cd4CFWzc7irKToWxHljC4bk0F4FxAc3xjhlXgiM9Y6l9Thzljt/x\n8qhQeUEBLYNbTYQ9gwK/zJaek4CxjyitqAeQOpUbkH9rb8P/dr/FRs0Y69/H\nEydNUlxno2ReV8aHDFWuul63E1r+Mo2VBbYgIYDVts7eykCI0Y01FFDwzDxR\nA7M0dUizZf6rglJQ05dabdjTzISTU4EMcQofHkBoiNIcz6Gst4sdC8a+16XL\nA0Uqw3bX5xiIzpC9Ig4JLMPVuEwSZy0Cj3XU8l//B19JFdVrrUBzaNytIsxn\nyFVIHts3mZeHRWX+29k+LX0lyJX1AgaXjazgEDDaulhVXatKVZ7LQr0DSb5o\nZeVhGCe9XlgPMWHwYIBUrooEe6jWZXYDMWkYqaXBtvywyjaTHS5fpgsU7A2i\nR7TIydDaB7C9bbOeUnwjRsYiYD/51zQbZrJ3mU0BhO8/YDCcBp1RHiwLD8R5\n8umPb3qvcbi/kcXeGZbpjbv6hE86Y3kfzCBXUj9bVxHz6u0y24q3NIJxa23F\n/cqRTUAdhIYEclY5fi+WY/VYQpFlgu87uBWIgUobVxv2jdmRWEA+u/T9OLa0\nlnW5mrpjV6yQevS3ERAj6nr1JHZu7W9KxByralrGjnLsrskb20+zWMr3pybN\n/SLy\r\n=Xcs8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDixPzD2RsXZ4b8OHN39my0PFXWIsJGhPz6KYgjgjx6wAIhALBgVujQfS/HpYf9ZXGRccJxjtZyuZuZVfNvki8Y7HPR"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191211_1575990422821_0.8483655201085623"},"_hasShrinkwrap":false},"2.4.0-dev.20191212":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191212","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"8c2d1cde59a868cbcedb037e04788e9e0b1ee5d1","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191212","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-D5rMRBtTumMfGY/E+QcT3ONOGocABVbxqVdetuLLH0eh6VI3atbZeCzDt5tAulFOyBpNyxdaXOnqynOcuByHsA==","shasum":"c5b3d5a7231eb920e2d517d1724c89a38c7d8629","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191212.tgz","fileCount":554,"unpackedSize":1151804,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8S3UCRA9TVsSAnZWagAAOBMQAJO+LWP1pukm4lpCHRW7\nxjsocQHHNewEZRNnsTUCd+8FCwa7/3aKBMpNQa3E37N+8ywBFKWyQ3y6EQjg\nOyFq9jzvEuvnrKwk/3ZWc/Hz+y+GdaUVEvussIEUjhKVeSogmJTc0gi/PE+S\nVeYzakYUhFF+Wc7XYlOprWIQuQ9+9wicEKrXkpdUmhNpfMdc9eHcouWXXHEK\ndTR5nbhvxsv2ppRi7hMCOlz6+Eb3KW0f5ChJSqp2TbSWgFQ2hFnby1VTndVA\nHeHDuT0ajVVcZb3I8DqpwLfyNDOeVnPtYmPF9YcL/bzIcHlvog1B5YoFRl6n\nJzgCm5M97+H5yi65L27Mm4FYs2SjkGzY2/SS/soWPEJzZLqSqDDW4hK7x3Ai\nfZJZ150DugylLvnUyBwzgb73VSvc4ZfRcpnmGLj8IByxDWFUmybrPD8Y9Eu5\numNUG8FcbALr1H2YPFo8jppkECtHIiifDMo2CmdlZ3NCl+cAUZE3LkeRkDl8\nUnfN6KWdlYIWaYgi6+6xWFQwnKZ6Vw/vzVZ57ECpVnkKHCPCuWVHwu1/hSke\n80ZZSU/mo/Mp/3iR+wmfluBS+TRzqHOZvmf/2vhZexxIVH2Vxwrr2XHRu4PH\nWDtTDdZ/WdnIJJpQtc9bhuSsQOywg0AuWOrruoRaTeO5DqPLv//UnbTlUMe0\nVbMA\r\n=RTA7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNw6sFV4jqrgSqm/kqyA+dmQSiAHTsd5PC+xIhbj7qBQIgVTk6OD38/u7gsU7V7QVz7E9cV/Hjm5Pohzj5jRAgADc="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191212_1576086996170_0.9060068446420586"},"_hasShrinkwrap":false},"2.3.1-dev.20191212":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.3.1-dev.20191212","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run compile && npm run test","clean":"node build/clean","compile":"tsc","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"d7085fe5e28496a12616a57c47f50e420b1ae17a","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n    - [Entry `entry`](http://samchon.github.io/tstl/api/classes/std.entry.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.3.1-dev.20191212","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-3CIm9vj2voXh7rXJWqjJLAisS16NBcnVTk0o5/q1EMSB2w+H1m4xOimzNN5u3II5Bist1hiiNU/k7xuPnKKj1w==","shasum":"85922901c2d0d4b9c11611212157752ee3ccd90e","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.3.1-dev.20191212.tgz","fileCount":497,"unpackedSize":1066083,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8iBkCRA9TVsSAnZWagAAzFwP/RnZCJT42Pk0fMMAT7CJ\nA0bmeQ2+hWYPIb2dJO8lQjRmF1e+uIWMtu7+VJHIRqgFWjvyU6QeqisPK9jx\nfic3c3fAgfNl2wTwWBJZ9gT9Y8HtzLHdq6ljpb6bHMsXMn5mbvWTOkGygHp8\nAhbP0uz3XdinlSMH43tcvztAXcHYv07nQY42CHOL0qEs3c1DMFMm/W9lcW/G\nn2YiI8srysHfTuN/lZQyThyCMKo7OSsGcQ5akeh+m3UGKghWkaLjcUexebWZ\nIhZ8XEexud0rPV7yEQ3uQYIJzfwWqEmKa3slWB4NitGLzfX9HBeoOvpgMAtZ\nbaJ9C/LguXzZRTfeEp6OxWhm9WwOhgV6GLOV/4v/Aoz74sInh4c5RA7A1snD\nMzU68QCJ32xt/JS2ADk//GpjA/app0xSlI/TK+fsy87kGM47EkzHYNA+K2Md\nykuoKffuo4TlRkNy7WkJb/hKnMQzX7+v14/yh2L2N6Eo8q0UBD2OQtmrIa1T\nvEkPpAEwiKl9nkshU8Plff1kTN5+6qm5Xp9RVsERA7Br4MOprKCrZMjLREiO\nP0oHqEH2VpJJjhr/AGRRkzekAbAifa8B72gMSU/nBYxqucpJ2fjSbGE4aN+u\n2/qRR/JtUi3WlzNoJinq3H9+3VI1FbVKLAIJwaRRxpbG4/PDnxTwJl+RcYbo\n49hM\r\n=rXaF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9usa22boCUabqwA4K0z0ILcMa77BQxS+SBbJhNRn9AgIgCKcgfpRBR/NvYCa8nIHw98IVtjDdX9+0k+iS5Q4IhHY="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.3.1-dev.20191212_1576149091630_0.742398059647255"},"_hasShrinkwrap":false},"2.3.1-dev.20191213":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.3.1-dev.20191213","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"34551d11db920a927d69e377909cb8ed58bfbc8c","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.3.1-dev.20191213","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-6G0F7MvT2ATIDdndbiqnXbWVAmhlOP0Zpo7cjcLXCP9UDAdLAAwDtv0kc6wpUYWpcbXcXM6jX7fIMw+Q0OJl9w==","shasum":"3ec3a3469af76b8d505ffffa0c7bb51a7eff5703","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.3.1-dev.20191213.tgz","fileCount":554,"unpackedSize":1153335,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8iDHCRA9TVsSAnZWagAAbcQP/0mkE13d1nBmpRBJplTu\nolt5Mr4fEh3fBW/Pa3tmeQOZeyBOFXwbdd9G5QtB1yKd8a6BHLagrbngFeZL\nx5xSJNSFlA6nXgAT2x2FCVHlbgP8tVmbAaLvxILhOTh0tl6It7YeVDaHN5sb\nTHQH6WVeA8JnsSzeUIgk0l0HbrbE3k+Gs2rxsszvM+Uimqco6CSqTGwXwM2H\nXwakT7j6WaVQmWloDlPXFhOCtSawcLSDAgqGSy3WXairtpnNJaixq9S+fscJ\nBnWOdUV9nWLqD3VPgJH158pV/0gP5wnn3sYjAcU7vbe0d/iC9LJARz0Bz9Yv\ncJNrWmHytsw9FDNb4vJKrP8OTGwJsfYQTEqtJPoiwS1/o/+pI5G51Rl/hPWI\nGJb53JPuM4VB25jhrZp2dPum6uqDCADYndo1NBFjlvWfdB1e8dAGNd+7rUdG\npJzkHPsR4x7GLTj7oG3hSQ8y4+Ewh4Y5Mihccpn4j4dpGhjABlQk5MxB8Gxs\nRrcMu1SvGamsdy48oogrPxKq5vNvMzLi3Wdpwsdm8Ge8OkAHSWt3Q+HW6KpV\nWOlpa2muff9Bs6VjSrA45urlHTOonbUDC/xGP/qbKm7U9tlRn2YDaee43ASI\nSJ9pZBs5wqQMdWnH9ZC04+iwYxy/c+SVecVduTmvfGZADsvVBNoNVvMaGpu4\nIP4G\r\n=o3Wf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChpIwrVXsFVFgDGG0k0AccSKPBYDg8D4G4IV3AJ57iBwIgNZui9g/TvbSW/HwZW0RBAutb1p8RL78sWSMEZ2Mznsw="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.3.1-dev.20191213_1576149190984_0.942854245952893"},"_hasShrinkwrap":false},"2.4.0-dev.20191213":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191213","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"34551d11db920a927d69e377909cb8ed58bfbc8c","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191213","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-C1YCqE4QfMa9uaK2rS3JdhiFVm5wlPFHgyaTWmww6sw3KQKq6Kqeix+QYHw8lXy/iZfZQFyE/z85GkQBr3hRdA==","shasum":"730f675e2f78a5687ee17012823bc8ccf11c6b8d","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191213.tgz","fileCount":554,"unpackedSize":1153335,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8lqVCRA9TVsSAnZWagAAZpgP/ioUbT4yaVftjsX+kIyD\n4xjkINvjZLIHsDPPHuC4v72cm5cfED+a2AWB6PzMjLWp1tawpAvI9xbi8buA\nrj15C5bc2yIk0BGU+6DeBGXoFiOW8wKfCLvVDShEz3wxCWgEo60TXBmuWuzd\nMVTRG/u9IzGVvRRSeOdjAGSor2LVDiMG43vEl/QMNSawpkMAGqaflHWlzpSf\n5v8gXvLnsH7y6OTWp4e9H6mVFIvaQxHgtIZeHMPEhXS2kkIIJMDwx0YcDvM8\nTW8CiWqGh06w/uo8efWIqZQEDd1KxriFXIUFR+ouOnvW3LYm0JQPVkG6uWFH\njCL+Pd4sxbjiztCkYUD5/+QX23WGxBjwLKX7nkvCZbA+iTx821Awu+UhHeRs\ndR57fieTGtyOyEPGlcHSTDE0jf//mizWc8zG7GWFEWd+RK1+HNvMl6NGPkjs\nMcv7AJP2mmYIyTew7b/5B8IlPDnlCYMvTxC5uCYh/ywloJ73cFeOPJKpAE/T\n4DWMaMamoCc6gnHoILG1AKuM/dsB+m4+RrG9/mg+ZtTOqFR8kNziP29ArgfX\nNbfNpSrqjOM60Z9kELWJQkhrAcy1lDiST6Jq1IWmNWkpV3BvXB5TJffJ0M/T\nBcliitDKl64bUiBD/4C4/xphDQCRIxI7AvPPvYdIyFXkVf3KDc+bVEB7Tbh8\nk93Z\r\n=lZSD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDT2p27ueNYFYDVwWHmDxeMtZBMOMwd9fTP0PIlc22rYAiEA7SRndlo7tOWAbeN0G8RC0xtj3LdRiMtJMjYGekuD4Tk="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191213_1576163988837_0.9642359723156269"},"_hasShrinkwrap":false},"2.3.1":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.3.1","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run compile && npm run test","clean":"node build/clean","compile":"tsc","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"d7085fe5e28496a12616a57c47f50e420b1ae17a","_id":"tstl@2.3.1","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-wi85g9z6OqbDBLCPyUjF0KtH7GN1IcMZ7IFikaljeOF776yHHYoXKqtK4tMgf/mkYKCBfdnLx/XCQrvmhVvVmg==","shasum":"a5833ca3045600b14366969b4945847e3918b2bb","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.3.1.tgz","fileCount":497,"unpackedSize":1066070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd9PPrCRA9TVsSAnZWagAAvQIP/1+cI+jMah3stRf4PhW1\nN1U8xHC6b7jW0Q6rtUfd466ghGEIV0zdIcnnslqsO2xEmx1SBkUqv6VeS0yJ\nWTBOLamHuBooxfYjL0moo6Tjy/4pREmA5WwpB47lOvhSgmB4MdJBPEwy3Ot3\nLLGQ591Dd8fzi4utLu5xXQU9NptJArYEeIMMK6ANEg86UV6SDkByVXqOVV+z\n88+xjuK/5VkwmIZ4UhHoB4kEArVjZneJFIfMGVOuS0AMaMZ4S7SBCoGNJMne\nwsOXWyOyVE+XLB+M6h/M0naTzRViCqYQR+/4DB277vmnV3iA1jmtjW1vKOto\nO8i87vHbc1+8afDXdwEX8Zl3dZTs1wxfPBMEqaN7ZYeJ0LnNKbHyhr/5pgjc\n+wGKbV8DlfxZy0TQQFcmz4lZerAfkGGwY5McNwxdF7IiH8an3NP3qE34Gt4q\nLQbcxjGVxiBSMqSR6Y562gMTlXJdeJVztouazTkWkb35feenmdyLibys2P8H\nvDjxPdTDA/QVNFhj3avrxx8WeveSLjJYsuLR/WNc3GIM4wGE2V+v6syLEFrV\ni0FJyW1JKdy60Flefp0xn3fKNcnHsYha0fC/wQVLmjxirYgyr0LegGtG7MBg\nKiG4sD39YDkd4x47aw7BkqmjHq735ypAGV0tmpZRm02wH/sPrm+S+11dcASR\n11x6\r\n=VkfW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPZW0UXS3Dt1wz83ZL6iV3gaCXyTSdxtpHlPVBqZTzWQIgEvL04G3ErsE8oKwU4YjyEroK663NE70ebpHdV7ICn0Y="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.3.1_1576334314883_0.21997565569298128"},"_hasShrinkwrap":false},"2.4.0-dev.20191219":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191219","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"21c2d303fcc16d96b36a3802c2d6d342fefe344d","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191219","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-Zyr5j55bTm/mfEX8aSLXEuGF6rlNFyfgAk+mxo5GqS9WIqEep1pqN9W6OusQXzh0yfckh/Tx/s3UexkeVBZJGg==","shasum":"3beb7b61268a156da4a1f3a4b8d1aacbf7a3a866","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191219.tgz","fileCount":554,"unpackedSize":1151719,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+554CRA9TVsSAnZWagAAzMQP/iBACeXD/dlzCpNGGNqg\ngEPlLgxOQzReKrQ6X64SpPycwWu5FR4H8Zl4SFcZd49RJJWY5soPEcXYJDGI\nbmLnanpHHexAb/FvF6NKSzOA73WOoyXVy8qdYCOeOtP7XmBYZVvf3HBsUbT8\nimT+7hREcVr+Y8S7EZ3J2+BkcVhnGKIAD1Ox+nZYcfpChuF5fAKszRMM3w9/\nYlR3GQxIb8eZ4IZuvr3tkRXY+h9BrVVXrgQkXHINYkxzZ5QIgDZRRjVIcR+p\n16e630WPYZuMR4cmt4TCjx34EkbDPAdPzpqStzCUqUHqHpvCeM+G8hu68qwj\n+yzhfJ8jJGNzcoqpUS/sMvz4N/ssI4rB22HPyV+VGB3vtnbF53PqbLuuybaj\ndAaw2WhBYjZsgeYYvB+Wp+GTQhlH9ajt/6U4yjEDY2eZUs0Uq4U09Smeqlqe\nMubZPap+eX4a5wyFF9B1L2xHGNxdj1GvJYq8dmKQcKcqLCa6DmuE+//165Zw\npss3g5buHcabyn+ccxUtzIRIN5HPBj8eE1J5w/kWP88CO6ZrxUdEdCMFoTlc\ndc+manS+r/IcveZM4vY4qZxp0JmnuECZV4TcFc6rbt6ev0fqmAUV6ALCOKcw\nQ0SCGeC7r6AQ97k4efUarfQCjzf/kM5EkMeTiVFzBd9mvCvUMWMJSt4dxt32\nirq3\r\n=Z5qI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtXL/IzBU/wcQjh2L7N9FJrKtGjF/dBXmdzuFroSrt2wIgD0J3lcnq1a7gpW5w4fsC7v2yraX73kY77SDZj5BfS2A="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191219_1576771192035_0.9797554238872046"},"_hasShrinkwrap":false},"2.4.0-dev.20191220":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191220","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"89c05330a83855a1123ae84fda8b65c04cf1c306","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191220","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-a8i+lsaBMlr+d5sVm6tBbw8iOTAX1tIrrdXXxUCPM/v5fyOkolxQ/8ZfgED5tOydgBA63h82KGafyN5w4kozCg==","shasum":"ce4f7e5686149a27e050064a0a8fa9cd1bed627f","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191220.tgz","fileCount":557,"unpackedSize":1154958,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/gu/CRA9TVsSAnZWagAAJCYP/2DD1yKigEWeUtbQiuvu\noMmJj66WMRKQBmQpkjtr9DV+f9NBXaJJTQs+GaoAQ+Tlh42Tf5HSi1EJ2pGO\n32y/ZAvCC13fJHu+/74Bp8sZhqkGZ7V8dQd9J/qkGQtYwiG+03eD7BcU7H7+\nqLoVsx/ToGluYK594LWgZHBCP3zwv4ES3/LjCbZ67nNJ2IYVDzyFzDJulwsT\ndTc/EhscmYfT2NKuc1kBQmz7EAjObudWN6BlPb1jvKqj5+2llyfsW82Pvyl5\nuaRB92qAwaSp+k56uIzfa31IwnzyEgbEbXSV4PZVInRIsyBkMfFIV0FWG37Y\nLc1FDEcDV9wYsypgrSWR2wFYFHtU7zjgqxmlobAh6VJRdTHPrF3RoJpaUN9+\nTGsajFVEIgUTHXGgw/1gSzf3BV+GsIZrNkoC4rArkf5iVrpE2vklxJtZM4R7\nQnCtXn7YRVdzpgviu8jWkrExJKMc8LE612r7+q7OjYJRR1Mbpmgs4x3QTvUK\nJ3dpFz2beSOIqoOTl11K70FL7gbgnWsGfdsDb5lGUszNk590CUxIwoBtr50B\nwDC8/iE/uQSJTdNfyfTeS5HG5lYcfqNbR2286zL54GFFQtqui7YmMLVHR1+a\nD2MRtKxyNreLcVugC8uB9P2uDtigWmMlvJeH1W79ohFc+feX7tPwv/Gdf0Ve\nrdK0\r\n=+lwV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUojhimC5qKd+YjNhQFhAqzvkmCgVJJhfPLgg7RLRd+wIgf/GNoJLL94d7JZAxFryr5tetiTDRzUTWjXnwnO+lJVo="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191220_1576930238950_0.18752816065853262"},"_hasShrinkwrap":false},"2.4.0-dev.20191223":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191223","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"a13d64ef1899918d546decd9edf425e738255574","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191223","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-HgzqXSCTIr0QVuIJLDA0JGU3YNiICffH5oplMB9pKp00LKWoj2ENlycy218NGFO3NWH4PFuZoIfPaKqoj37cbQ==","shasum":"ee22535c10a2e9bc538e232af9e40ed62a62c68f","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191223.tgz","fileCount":557,"unpackedSize":1161007,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAMbyCRA9TVsSAnZWagAAZtoP+wWuIvKLcGGYCeYJV5D2\nsMRVK4jYVDTj4M8uABA+tGzd7XDq8IZTIoRLjWeuceMqmXpylkBSytQz4TFY\nYHx0FiOEuTB1gs5jZwnNbRYUstADD6mM/S7WZM/VfW2yk6NNuLTSpI9yqtjo\nhoTHuwtKuOGgLM2GC5qjdaN/GtFSQUUNCwJqjOJBlocwAW0P9E302HG7qkgw\nMZR1TAf1rYaWPJfwSk/z+ArfBl5jG31KA2G8YB7gb/nQFM+Ipk8cCWpZ4P4M\nmhY7cy+E03SKpVWU/qbdX9tBR1wteWtCLjU/whzNJyne39LnY3UB2GstAhcx\nvPfIwsynS+aDc5bcI732FvilTgOcTTcg1H4mpUG9YTBOLJWW3Dr+EKze6BME\nyTccFsykKLmo35mxd0v8oMjutCHPsWkz+EYqW1yY8Nihx58ZcJANNmloSoBO\nt4Seo0pXRyJgAazuzwANcvLm6T1Lt3/Lt7flsLLjIDTpSSqXPuIwupneNlNn\nwOtJDvxoeoxHUSD7jm9Wwwms2jS0vzInUWarDHlLexCwI+5xFsN2LefZkDtb\nFfHEdfIluQ65zdMbcsCxvZ9UOVw6J6l99rbJpBO/+LBNWmPicObVWWNtm3Y5\nCWWlUSXzfh1/OMkzcuKfBZ5x53s2A13AJhy4SsuE8hlaDmhNXsGg+feuvPt1\n9SkH\r\n=qClc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDnEMm+4V2doW0q2FEa2FXP1Y3WPtIZHKokTvn0n9xkigIhANJmwUAmyNS/aWsD80DjA1WEnW6d9vjxPOy3h+xm4Emk"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191223_1577109234067_0.0912672808815238"},"_hasShrinkwrap":false},"2.4.0-dev.20191224":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191224","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"6b5aecc57210faa371ea23d8875d82d5a0be67a9","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191224","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-nZvRkRtGXZSh9rwge+cWqV1GlS7V6WKDQfSNsrz7qqlJEUF/YQLYU6I6DWI7aMQ+G9wrcakzKWRkZB+vLfOAPA==","shasum":"dee7dfb886069f90228f78848c7486db1e70c265","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191224.tgz","fileCount":563,"unpackedSize":1162987,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAiykCRA9TVsSAnZWagAArtEP/jpgnQ9ySKXsH236pn8l\nP3jDMraQ1dKx1aVR8EtmjPAYDrl7f3SV0zFbL6jGSfNZ4D42FevfnsqXWnDm\nbbJhmwlbQxe95t67hxQYtBOBkVFivPm6+TrxqfyNduYyLRDsiqCqIVHUd/eB\nq/fX6RrbuZbKr+nV5bPoRe5xBqCVALQfux3Lhh8a0QoOaZnVn/IHff6aJntH\n/ZX0imxlryn4DyDwgeyOQOhZB6wdre5lOEY8S1UDz6Uq1veneipRVSLS5DMN\neKadruVPHxXLaSFIKhynkHvYDjj0qhDzRVeBET65jq5OElheVlX6wdieE+MI\nG6fpiI3xIKhuvIz71we6R98w1vui+i8PC3kgHH5yGSomVsN/cVKodnUh2QyM\nmk+UE4Pb85qr8ttvTHY9FwtI0TSXZg6EzPhAj4w2HuRLtFfiYv2S+BPWBtJe\n8ECQhyS5Vz1N2efFHPRuXw8U6Q7LLOv/t9BPA1kfzR6SDZpZhRasT4bt+xCC\nQSBWAO9MAceSwKHgQ/38P8wc0YPEe86kASIsYeOwaMOXYZbmIYQVQ9EkKctI\nzWFRKMYQerhWD1zjdIWG8xJorAyGPR8sck+pPUQuG0zfsEJCxhro9N7wNJFj\noWnaq8ixR46BiNO0xTcoo7PUtP83wqEweXfyDrXNHaUwJAVV4UCm/0e2VRH+\nEuGS\r\n=Axkj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5CdNhUBMaJUtYtb5y57v2CHgYSLLq6VRoHPLuc6PqSgIgLU92ewpc35oX0zbnnCTPjnzzjsbUKCnNJ/pGd0NZa+8="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191224_1577200803590_0.8882011456654733"},"_hasShrinkwrap":false},"2.4.0-dev.20191225":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191225","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"24be11a4b66a15f42e91d2f123a89a1fbefc285c","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191225","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-kDkWiU3545pFqrbtYlxRRc/FGo1M/dAT/wi6axTTy6UXZrU/pD5xsqg8jHU8RCgVhynY8j0bbbM/7WG5XqgTmw==","shasum":"c731fb1dc3894d63525e706cc964ee6ef0dddd87","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191225.tgz","fileCount":584,"unpackedSize":1169988,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeA3pTCRA9TVsSAnZWagAArOsQAIiE7TIYGFxPn9DnB6Yx\nCv0sRj6P17f3InhKz8xFfaUfKRo7IZR6IscKDN+o2BuKvAkWu3r3VuKHgh6u\nMcinBDwRNsZM5G606/8DcYrAZWMPAj/m+TzfNHyKkJZYCsYi0dw0qs9doEnV\nbG2qgsuB956Bq2Sy6KeUPulv4IwMbkfJjvNcopRSqIcnbiK46gNrm8ZZxZjD\nq5XsiXvA5rf5cFlhrP7XhADX+/eto2pRUYI00ma7loUBxnP5wapGUxMxurXM\nGkaXOX+r49ZmYELk7nsKOktAvQWBaY1B0xg4bRYVwDAFip7f02KWlVQfjMrZ\nZBzAHBGkDIyTRuJ5Rv4U5VSThl9CakNbV1GdIjcHs9Ts41S0n4NPh5DIBfwc\n/u5BC3XI+qbfXpKKIENNoKQY6IdT89gZaHJ9gzWIrYJvlY3r/b67ayR58eFz\nWlM/KsxHKqNe0V4D6rAHuubfealXQtdaRFJCwT8tCWW59hdejtx1HVyzqtnp\nlAylBiEAkkG4T2YdV8QucW+ziodb+/Nv94ZNj4/L8OJMa6ay2L9P3pOcgalI\nPqbvrgezXrBzvjw8L7vWg3ThndBhqHkco79QWPx605QTBDOy1ZybLXr2QzaS\ne6IUuYSq8FZK8JUzgfXGh0vrUko6m3Qnxfa0AiQrvbJZ/5//4f6H9UySPAnT\nAUkb\r\n=XmBg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICdkP+9xY3Av9o1zIN740bmTteCLDgnyKAQ+gWpLtSqvAiEAlQyPEhrORZKiI9knbsxc9cyPsf/h46Yp2NxXashBskA="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191225_1577286226649_0.3186608743283639"},"_hasShrinkwrap":false},"2.4.0-dev.20191226":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191226","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.4"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"0f315d5e9f019498e8567aa2ea66feb8c0b28dd3","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191226","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-O+5+ESaUqlRbqOEnTtsa9fdZrD54l59Di/5wHZ3ZXYpXGXPE/P2MHW20yPouUz3aH1y973ZPPdQ7162T9KYaLA==","shasum":"19d10a65a7538efdb385d071706ed597a34b80cb","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191226.tgz","fileCount":596,"unpackedSize":1157897,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeBLXPCRA9TVsSAnZWagAAjykP+wRLiSKbdltmAs/p7ly5\nMJN+PRJsipo0tC+l4kBai6D/0xVpHOD+7ZuropPCk7/90g6voeR6iMgOnmTh\n72WSl1L+rOm29wkGNQ4ehZ4P2AC87kHcxQgEtbN3G42bdESfcsrr86qS+hvS\nFnZDV+ucSt0DL373ve/l7G8e7Znn8g9l/x2cngEMNjRwek9JXkD85rWlF+ck\nTX0HCRwHtUjyB6ZPCogTO/6bBqklGUPHqcc26hy57lb4cOzilmQXnj8dHXyA\npHCUysYw93at1lGPJMAunLU+xX17SsewJBVGaMGQO3XoBjgfa/uIv13B2FRI\nrDeY072fc8dOYSciKsfC+m1SDdL5A10+mzp8+kwsl0+PLVsGjwf5TaHRAGvw\nUYxTllPTzHTHUXxp/We4DUia8vkK855NCAzZp/cYI/XM79IZ4dqsJuu4jgLM\nJBVI6/rndyiPYArrfkQ1wvm1J20vaGvlU6VXogUG6L7Aqhsl+nkFhMA5ZAuZ\nDmu6281ysHxg5u4Xfe/LQesRBVOqXcAAET8EFbVlNBMFvy6OR7l3CV0tz/nc\n1cKPUx8i3POybPq5iQINzgwUVGs8lYY/yHV4uN2UHMind9eMsxoYsJH442A0\nZZXPHwXZepZuh200GD+b9qaz9AZjkdJUSBprc8D3+Te1PH6WClO0Izq9Ik3M\nSEni\r\n=xDhj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDa2C2INNuA0W6jonF6GoORvdApVq3UqjuNLZ0Fw9lDhgIgcFGsl9/L3VOQjdOqf9iQuFLNlUizCbMPeRmRD+7tgUU="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191226_1577366990491_0.9847228386460272"},"_hasShrinkwrap":false},"2.4.0-dev.20191227":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191227","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.4"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typescript stl","typescript standard template library","container","iterator","algorithm","functor","exception","functional","utility","thread","numeric","special_math","vector","deque","list","forward_list","stack","queue","priority_queue","set","multiset","unordered_set","unordered_multiset","map","multimap","unordered_map","unordered_multimap","TreeSet","TreeMultiSet","HashSet","HashMultiSet","TreeMap","TreeMultiMap","HashMap","HashMultiMap","mutex","shared_mutex","timed_mutex","shared_timed_mutex","unique_lock","shared_lock","semaphore","timed_semaphore","latch","barrier","flex_barrier"],"gitHead":"619b8d9e3d79c68bcc85a26b6f909c27b8940368","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector `vector`](http://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque `deque`](http://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List `list`](http://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList `forward_list`](http://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean `vector_bool`](http://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet `set`](http://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet `multiset`](http://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap `map`](http://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap `multimap`](http://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet `unordered_set`](http://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet `unordered_multiset`](http://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap `unordered_map`](http://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap `unordered_multimap`](http://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue `queue`](http://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack `stack`](http://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue `priority_queue`](http://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet `flat_set`](http://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet `flat_multiset`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap `flat_map`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap `flat_multimap`](http://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception `exception`](http://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError `logic_error`](http://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError `runtime_error`](http://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair `pair`](http://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable `condition_variable`](http://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex `mutex`](http://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex `timed_mutex`](http://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex `shared_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex `shared_timed_mutex`](http://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - (experimental) [Semaphore `counting_semaphore`](http://samchon.github.io/tstl/api/classes/std_experimental.semaphore.html)\r\n    - (experimental) [Latch `latch`](http://samchon.github.io/tstl/api/classes/std_experimental.latch.html)\r\n    - (experimental) [Barrier `barrier`](http://samchon.github.io/tstl/api/classes/std_experimental.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191227","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-1iuyQUju2o+M34SDkqj5TcPXNPQjlNjhqBwYuRxpPZggZP8f9G4XASXFAZPf6/rrgykSGy1NDIOPhIQpzt/v4w==","shasum":"2482cf4f789130ca2fa0cd950218b718a58f08c4","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191227.tgz","fileCount":608,"unpackedSize":1161653,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeBg1QCRA9TVsSAnZWagAAoO4P/2Pt+uXCQWBy3jkmBSIj\nBqqkmNRxY1Iiq9FHZPA3mIlbFUxLbpOjPaTYBOa8Rp3ndiq/7yjjALVyAEUf\nQVJxXeAxps6CooZFfVy7lBLNWyPBaiIdEDy++aNuLxu7OhyRKeQEhYXFOyfg\nsqQmdxbNx04a89os7pyvmYHoYJZJN3JUXJk/8oLPC/MyEFxcjnR/lffpweq2\ndtBT52ucNs7hF0nol4aGC1314AZIVcXSGrxyzmumYmZ4dZSa8AkI0cV6heZQ\nHKo+D78rLGtLp9WSg17C7EzKVjot16ZgNAVYJXsKMSTEDDmjn87DJBZyXjfk\n5oGMtd/uX6iWW9uOOPK4nYHOZT8vhukEdQmlaBtP3E0VTzjSQirfbPJfgEyn\nMh6PVGBRhlhZvun7mTLvGtK2G5agg/yu4TQCDWv5hUYBh7vkTB8Kx8NsMFkk\nIgX7Ag8YnspDpl/00NCSbqPF5TixHbaUQZczTsC2uIw3/nmgHIVXgXRBT/4i\nnE1usoy7wTkNdLZl5ITR6YkkJY5e2VRCHfke86k2JFOZ9/za0VPAEdgVyB7M\ngOpD9A3mlh1nQHQewIbINrO9isU2oXofGWvphjXPcyIkbVT3t7g8U4ms2cHb\n2malvB5vMSPToS4hVd+6XqfsTrYB1/zICQpprlDP5JwKcIZU5hakIE71N0if\nGwkM\r\n=N7F6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDymGYwamQoZB/k9gnFI3q6r5IzdaRUSJ/H9c0pEveV6wIhAOQ4xA1cvllzoplWwcJkut5eHnzSHKm+vpi5ntx8EzpB"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191227_1577454927443_0.6815434630023034"},"_hasShrinkwrap":false},"2.4.0-dev.20191228":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191228","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --ignoreCompilerErrors --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.4"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"gitHead":"df93774b3db74142d252b1b5e9775fdd07c12763","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191228","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-tFn6l3LoHI5+KIVrUDqHAVufyAowdMd9u+mGwOLAP/C0P5b7hFPjPkGjWFLqbxkbv249jcYKqRiQcLwiYi+ugA==","shasum":"3f0f53955f9e9c68d60745b3e793f51462fbbe61","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191228.tgz","fileCount":608,"unpackedSize":1207251,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeB227CRA9TVsSAnZWagAAeTMP/AzGmbc5qxVDXx37NXu7\ndnxZF+C8EBg0Pbs7gbJTG9NnrKEKaiak+pTSqxWMLCxqML3/Njw1uQQ9Jco+\n+CMaC8i351JaPcqxOeEVF4iIiir9pqL7M9o9Og/WvAkPkfjqIurJMUVd/3kG\ntc0kU1kJqNbjSVcxl+wymjsGYL+Bl8OMkqUcLQ5K6x2Kdt1HwlRq+iYpByxy\ncm6IPzYkj+vkOVangkmias/qZwKOfz0Ps3p9MOlr76uazGmvJQjxwwaVx8pl\njlYfRsC9qVVqmEOAUAXK2UrzpfMCuJ8Ri/1PwDNMtCS/oht6hp1QO4fSw1FG\nuH1UMzi3NVi1o82ZdwllcTI6gvAT+gc3QsB26HjS08oyPCyvAv82QvDZX6kS\nX3QTzyAbaUgpeDxOws2hwAkaWjLQtxMMW31GGu2uBf/I1vV81a2pxkQ9n1Az\nus6nvBrgdUXLYJFp4aeXTqdeZGem4sDGH8FCBulkRlWpcwZsaZcAGxs8w2cZ\nCeejlURPXHcd3hUwqpyNFZZjBYqi7d6wZov4AUrrqPFThFQ/EzUis4xF5Elm\nTQrDlZKB7PGUYvDvWeL2zko6qjtkLJb2ImGtWuMF1LUKtPw0Ep8oYW2k4dhO\nPcj3eWzD8/YygLp0nre2kdIPoK9fQ3pyUaz3J8Jyv7DXs+U4PLg30/xYcFUd\nvuKc\r\n=OJIh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBeGrfWvYtomTuz+Wl4B7YNucsocq4HJthUpU/CqARrGAiA4vpAcThO56VyhcsG3qFpBBMsu8rliv2VcrkdduryHlw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191228_1577545147028_0.23721689197796048"},"_hasShrinkwrap":false},"2.4.0-dev.20191230":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191230","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --ignoreCompilerErrors --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.4"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"gitHead":"3598ab1bb3936b5607284f2d0d76fa87b2ed93df","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20191230","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"dist":{"integrity":"sha512-tSPtPJrRizr0Ac3mZfOg4VCUqmrd+hjfc3qiesaMUlXJCRn9y+ZIdbuut/NK8AwjHrOB++6PCwQ+Mqz3ML/jHg==","shasum":"ae4deecec3616f9a0363ba7b0d32de93020bf74a","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191230.tgz","fileCount":611,"unpackedSize":1211809,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeChiFCRA9TVsSAnZWagAAcwMQAKUhKH88Ucsoiz44Sgrg\nvYSvvnUap/flRNogDddLI53lhmN1S0WKu8xeBBgbBg3Y8mYXzucSCyqazRO0\nB9bluHFMRK1LXpbKfb+qtqhcOOF0Sr62WbjcQIPHHWlMmFkH1beVeBFSIIXC\nHbd6K/xF6HnBJaaQxvMTi9pkvskoJBaYi0Bl4DluyW/Cm+eiKp7qttV3HxIY\nKcDo2Lp2+nR4d/P2rcsaAQnTvsrsPAe4SGY8omqmI6SAW2ONNiynt5AjrkQz\nAYp3TnVhmKfFMiZaaP9QH83UsiNvCEivnpWiuDhoBKk8KjjSOS2AhRP2atsM\nSFKWVzZ5dMhjL+zjZN+btmPU7dCOzc7F6v0b3QlmrAsE9fr3oKnFRf/m+clV\n39e0bFcQR2ZCaWT59ZFkE4luftGtgJXjfOPXkCLZK+OT86mUaB75BXCV4LxN\ngTYo4AXv5zY2uMNqNKUaV7rimbdk3Ld/ycQtr688ajFQ3D0jfAac3ls5Ywb5\n6mqC6GPONHjjG2i+3qig2qPZAOj7L2kpwoDJ1lke6I+GebBjQy2rR6LBe1v0\n4q8wETkCFWeP0QzA8XWuNBpldU1D6vZzYK7A2E2JimcivTn8YH0j33LdqFhK\n8kL/O6OBJIFn7ssUQYBmjjMe9lORGSDwotZU3cegIkuz+6UuA1dgylYrEGM0\nBxY1\r\n=kruE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrym7g5l/m8V3/SdRpkuw8T+HVfJBDJxrxENJ/rt50CQIhAMG4zOf2xGPgEvLh6pW5VwMxM3mWH6RCo20qDEZ/tvp+"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191230_1577719941002_0.5135342321773331"},"_hasShrinkwrap":false},"2.4.0-dev.20191231":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20191231","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --ignoreCompilerErrors --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.4"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"98b51e4ed315b650baf2c8833d0d0acf30939764","_id":"tstl@2.4.0-dev.20191231","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-oskpysDT5uSFr/3TClLA0ZZbKLdHjBRDhAV76ndPtI9MhJj6RmfHjpI6qchzFSi2ruwdnsRyYwdKjlpRQxOT0g==","shasum":"5ef9c49c128000ddde2255aefe68a0f0f8f3a12b","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20191231.tgz","fileCount":611,"unpackedSize":1212103,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeC27tCRA9TVsSAnZWagAAkGoP+wVgWINM1TYwuXn5j1Mg\n/3tQ7sNngaK35BHcp9XpmZ1cra1wxevQ3MzE/ntrpM/f4oiSOzxHHLubCQGJ\nlLbxpyeJ1G5OUTozE41KU3QloRheUkbzrlxU6PGkyBEDQpishk02aqyoMvyK\nNR1R/Bs2YAWDdIhJjACYogQ/vviZcZzgIRpg+WGcrhBqrx6+jP80VVbnY52C\ntE/j0SylVIpFDFhKVh9NFDR/NNjNXroWWHUe+yyT05aCEgXmcDzsIof3ceGf\nGHOqYPtjY9luJwv9xbnun3qfJ+SgLwGKAjGiMJztobsyh/c7KxtD1BXCzPBK\nA4pgw4/MN9bZ6T5MVN8hRfU05WvtFoupq5M11FWhn8lFP4TOvF2fRi+ltbK5\nWV+RiAUBeYU6PIa5+F3r/8mBi2/b0VsbNyDtga/7qe1kzB3/ry73oKs2hs1l\nVJScqhvmQFrDxOempSGg7VlMvaFTMSgxZiG4LDAEJan1ZQH5HGGmXms5/i0i\n6AJkj+1WJHGIHNXBw0+KJZgiIO+t/vzTYufem82CRuCfs8Q3oJUJGTGzgQcb\nYn21p1/yamAkkaOM4E4q8a/qex4X+czy1ymzbA/tM1qcH9XHSjn8PCARyxg4\noxZbP7GN0EewJ1bIHLsH2OEvm9w2XV06jJ/YHUW8Rr0HkzVkDKiYIfMdrNuj\nm3mH\r\n=hpYL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDskpDIrxNMlJ/gteQxaKzBMOfgi1+FukZggvaIRF8+KAIgQu/zZpk1vjYDv4ewBkCeFLKuhiOnRB8YdiAFIa8r3KU="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20191231_1577807596799_0.40151318793776936"},"_hasShrinkwrap":false},"2.4.0-dev.20200103":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20200103","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --ignoreCompilerErrors --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.4"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"4d428dcbc2a84ac742b7a1b1ebeadba43b3b1aa2","_id":"tstl@2.4.0-dev.20200103","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-vYHJDTbWfaz/+rW2gpqwQgMNxwpKTCZohzUy7aM4z0Q+hbFu5RQlYJhlGBJSeOjvhk1///LEzIf44awy43AVuA==","shasum":"c333d33e6784e16f8eb2b62603a147ba1fc4198c","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20200103.tgz","fileCount":614,"unpackedSize":1223717,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeD4QVCRA9TVsSAnZWagAAyoQP/RVFhPgqCyfoKiLzVyrX\ni1joIiwM4YDsb3ZbeR/KR/NoEMme7/ENvKKSlQ7BkQXsxfVE63iR2wpaNk5J\nqGgElN7UHBUYU1aoEIwFigB+yxZ3ttVTg/hkD9eS0r8mH/NtfgGnXfZ1/vkQ\nERHyawcLCowp5Jw6YXRpLazt1MrnVfB6nI1khc2PAqJSs/X7jntD20GPNR6z\n3EG9J3hKzqZKqNC1rTVKEGrnjAekJH081sk4tgF5XVNy0nDFhvIzYFXeZXZY\ngJj56zrvAz77bkCjke+F2P91sScVpigjEVbm1pMzCLeAtoJ6g2x/qt2TcW1D\n3lINdn52OokLQVn5H3KbywdVBDLmD1anik7I/19WLIm6fISXhr5Ns6GnNtko\nTQCuxotmNjGjInqAgYBEsYt/6tvKkuDFsM18IrcitsIMKgWkQbJu1CRiKdWl\nwv5YLg7t/GDvG6aHP0f6nbEqty0BnmDqNqEE/2NYOaMTlqaJtadkLubKcpoi\nLUq7ioIWJLRbXnrqC6agNfaKo0iLSDgdANDa3/AAKDz1PdpjG3s8/nL9r/ZJ\nU6IRtRpX1DxbCHBywyWQ1ykvCvBkMS6QoI8DN6nn60eXN0Z+PrtGDFS5Urjy\npAkSWvUrdfCOtxqk/+DKGnVoueVXHIOZTxYci6kEIdmVqFluPzfVEWLV4LY9\nHVEG\r\n=VgXM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEYw23LYicjHkpK7VR3EifplIMWoKPTUCuYYWoCtHURZAiBpq1uUVMWbUfdhWett5iOaeOIbgt2fisisagNkkf1JWw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20200103_1578075156507_0.3081657832264333"},"_hasShrinkwrap":false},"2.4.0-dev.20200104":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20200104","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --ignoreCompilerErrors --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.4"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"b9910593a94b44c90d3d1d8607411c64f2ae272e","_id":"tstl@2.4.0-dev.20200104","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-j4lQYQ2p0my9CMN1dhIWHJlCLNh4emRtoyQpUtmqM2agvkUxEU8JSFNjr2/xCZYTv6h4Mzn6I/hZIg8P/+Fosw==","shasum":"fcd3bc88a3c062e0ed2352bddb9b9a968bcef5cd","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20200104.tgz","fileCount":614,"unpackedSize":1235499,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeEKDVCRA9TVsSAnZWagAA2ssP/0AG2xPxxvv13DNpmk8a\nczf9BDL4KChfiymjIKKLI3cPryBdDP5PCDw7mL3RNRMgfcGUfCSM7vnHBtMo\ntezZ7d4Iq3PuB0vHKLoz0PWNXRx9RPZxRLfuluy4cT7rDcl9wnM0gZAtLTGL\nvPWj3cNGoOMG+H+Tbq5J2AqhSxCL/5xKd7pKNFbycYj5+JvQSoSEPpzWWq1C\nmxqgQb4VdvZLtRgFOderuBRZAeflDoCgiSXMM/iOBaYIzEG1DGR3ikTuLoVG\nmZbZpRMd5IdWlFOy4G6bD3YjQemFy1bgH+yh+N8oewH+MvBDWNH9mRJK1GSM\nGxtnwskXpBJZX6SomXOPb8tW7mpGY9oP8e4boe9LK3+fQuSuoaEoyGSwNTdG\nQNkyLEDQGcYEBHJKtVkuthoO4WJIznRsgI50jPqfgIijsZxxXuiGtAQlxWwA\nOopdVZbdkKycSydMO49j3nXooSBBqDxkEvavmsJWVQLnUccOHxAjv+V4PUTK\nMjYu89v9ResptE2Bg0Fq1pbWdn+/5S3Fj38GOR3r4aUNdB6AkL0KCTCc5che\nk3n+a9qTMrh9THzpJnHvO2DjEimF6O6aeSLFpN7DZXAVK5lTdPa6E1Rix1Rs\n21hTUlnvL1wYmGVEml5+5jk3ToouqbhrUJO0hzvY1jg39gA+jl91fDxlHHWd\n+zW4\r\n=S0Do\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAF9/5pHy3wRx2T1/S15IAHOMDp0AzsUJybQRaJNuz4QIhAIKucGBHouzSFONAbtTlpry1Cc3uE2RiYImlao7Jg6Kw"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20200104_1578148052477_0.12552880082536455"},"_hasShrinkwrap":false},"2.4.0-dev.20200105":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0-dev.20200105","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --ignoreCompilerErrors --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.4"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"gitHead":"96303950b6be003c85166856e1e1806431a45b35","readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.0-dev.20200105","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-3IJF+oeaMwz8eMa/KFfVr3sNDS44l1mOkIdKgAd/03PV25SmhAzNrspLmNg5frXjQR2taNs7EwjSVa4ODeqiSQ==","shasum":"ba4002f41a3a3e175a5ceb799ec37cd461237926","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0-dev.20200105.tgz","fileCount":611,"unpackedSize":1234738,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeEflnCRA9TVsSAnZWagAANl8QAJjllmLLsAtZ4Mc2d1c9\nAoNQBS7uMb26IVg+F25KDGBanXxPffw2rIBiQ4N/7M55p39/8f558GeidBiB\nS+02DRcVRVWLLbbx33GNSHSjRRcXaxae6P26NcGnntQpLe9j1vyyLllidHyh\nRfsqyzzQmHQQs5z6HGQve9W3GcS0gDs3CKW9RvxrZUKDQXDrgb+uHX3dtUO7\niaUOLQWBx8c8wCYrdqdSg40JjG2mI1OEC/Im6aoqCE6B45VP5G0CsYRk7c9D\nPUcdEcnYGtdo3+YAsaUabt29tnyDTU93m5/F1/iapHxIKe8f7BX5uit75NNz\nOJcCqRUlVuErybT1kw9G538KlypEnZ+5elMf474uxWqLToNzP0n0CC5T55OD\n64FemOLAZfDi0LeixGh97vbrAdJlkjjBENdZpLWkYiY8vwteUXkBN2btX+9n\nwQj3BIF2o4SdqER5ppWAKi2PEI6o3XWeKTM46WV5htZxVp6nKZ7rHuFwpQpu\nJsde13duk8c+Gnan3xQ/Kuhy4pJ+gsTFHwr7W0CCsDAqLDpU0SaDgXmRohlo\noSdsvkbMK8loG5RKzGYTplcpsgwksl5vLRqzuAzQR1kB6zXGH6f6U3Rrg7dN\nwsPoc6TO2hSehtDZmUTUkPoGlQMw6fFrXzM8woY7BJkOjR+XBlEKS/x4gPXi\nJOb4\r\n=+Qsn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDg5WP1fyVTQz7KpjU0080aQzreMxmHVMAX+W5ka7DqEQIgEG8bMjER2ZMd5NcRs5RU9exIuVqH0mde3cZU+ltal+E="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0-dev.20200105_1578236263163_0.3921077143304157"},"_hasShrinkwrap":false},"2.4.0":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.0","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --ignoreCompilerErrors --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","module":"tsc -p module.json","dev":"tsc --watch","test":"node test"},"devDependencies":{"@types/node":"^11.13.14","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.7.4"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"gitHead":"96303950b6be003c85166856e1e1806431a45b35","_id":"tstl@2.4.0","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-xeK/8WDQa8AayKUZ8SZlmkKe4W2A4KM6GZSTSX6dP719kYUOdDTQf/UIhdSC3kfaXT/ipil7sWdwzs9u/qoYHg==","shasum":"387d37ff09369c3b7d3899b15cc662ad37a7d077","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.0.tgz","fileCount":611,"unpackedSize":1234725,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeEsdpCRA9TVsSAnZWagAAacoQAJWxaA2dRPCR5x+nsLVg\nGz5xJVvmrQDZJ93nFh/MGAG1hZKr4KhUxtcbyC3+75SEg6WZmtRDrQiDn2kG\nrm18WQcQIH4cAE3i6alfUEqJ7vopu1Fpa2XjdijATP+auYf9/T3FmTq5q26E\njo6ejoWeIDkV0wQz7rOBb1OUPYCZpz72e6N6qpj4VuCfEI0MgHbmchiAWbmn\nKmekZJPeklg+tIeYK29wQ2AYO4GosSBj7ynYoekdGx54VoKGT0JvTbGJl7dX\nmW0vMxC5CDo/dwPkZiiFF2Vs8xK3eicMJzCPEDZhLo51+1w6x97oUCrHO3FC\napWDf9eTUIBjH68XHOJ2AZlujrPP/Es7AIncwuy7/uKQg3QpZdEEv5gYWUPl\nntYThHif9awGeTeh3hKZap83SPF27jQaZAJPvQplDUPVPjZrYoDZsl1Sy/mc\ne459H/RdS9NW6ZlpO7By13VG3ZXFz5Bqjmv157sUBFZ7elzNH1PRBCdWw5vR\naRgMQMLpChhRndQX7KT3OdHxmnZAoMi+4KR69StdGwJ2sJ0c+H1atPGZSGYs\n9jQ93B2VdbHFhR84zi3pni12vGlTDcR5upSTvKs02+efoEBccd4qDI9PtnFo\ns3W98nEQcgcPh09nII0KGRfmLxbJmPvYCEO6bn0DKqcLqnIt6hJg5+hMOu9+\nt4fT\r\n=vr+n\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAg3DuEglvNACJKp6WRHfEyr+mW1zp/XeNyA0hE2v2KEAiApTznd+avgO8SAQICvBtIN9HNQuYi76GTNmM5+OTFwQg=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.0_1578289000539_0.9551928363978965"},"_hasShrinkwrap":false},"2.4.1-dev.20200222":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.1-dev.20200222","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --ignoreCompilerErrors --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","dev":"tsc --watch","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module-dev":"tsc --watch --noEmit --module esnext","test":"node test","ts-test":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.7.0","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.8.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"33f60dbd238e3136c9535f6d6ec767bce8e4da35","_id":"tstl@2.4.1-dev.20200222","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-F/MvyaT2puWC2oEMKysZgj4DAppK8ZHPJikfGGYoqrVazm+d0qDC3SMe+J8cKd++6b71EYiAsL+29MB+hxxadQ==","shasum":"eef4ddafb544daf551df8200423234473bb45b9d","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.1-dev.20200222.tgz","fileCount":5,"unpackedSize":18766,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUKlNCRA9TVsSAnZWagAALn4P/RxTJdCNCCBVB4oMu5eX\ndZQyPVTa6vs+da7lUc3+iB+vxtMC+BSv4WWfSg7s07KZWnD32IQPzuKI58qL\nHnfYCQ7JkEm6eGb7CyloLVu3UHleSd4YrrB4PMC3ZxKViure69hYop+3QnNZ\nbJCSsfeh2HryJcGVbe5JMaTXWLdSCDJcnWhjiUNQ8PYN8Cod77n47z+G6J9t\nxQBYOJ86RsGdI0bcPblu82VaHZNfbAkHLzWLPuuH7UiIpkrDdZvp8VBFTiuA\n89nkCov/atevMAHB75WuOyuQ38zfdSkmcbFxaX8C8z2akndEqz+WD8wtazQr\n2Eyk0SrL/7N7AX+scysCASn1hKhlWs/23AtNkvW2Hno0nTlGvDIVhPaQQQ0E\n8UNtt9+6ECeEqA+DUJZCYNaGT6iMjJAZeKyi7WATYFU1zfGRZOODCcHfvRjG\n9ArmQceBFIGzJUzvK5eW2NzPxXZM0H2M8i0QSFL7M/6LnvFydH2ag+kD6H9e\n4jbl4stuXhL7JwuXN/tvtqiCcBwHYyiT40LpiEknCiHI4DLfmCoK/o9xSV8y\nRqf59tUF+zKn6hnNVsU0CZIjRZ5VWvFueYCWYviNFL7WIdWkHbT8eHrQdPSJ\nEFo55L74k0WIO7GzPk5idTJroElm5DUyypBMfMIg6f6mxzBg33RrVp4i7ir3\niFO9\r\n=H2dJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCaMoWwVTrxa97quYDb9kfznqFFLIDbCIizXke4XyRnsQIgebvxsLPtvOsJbtBUhNjCrR7kDKKSO5xAgQxOmGZBnrM="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.1-dev.20200222_1582344524762_0.5696414251672122"},"_hasShrinkwrap":false},"2.4.1-dev.20200222-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.1-dev.20200222-2","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --ignoreCompilerErrors --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","dev":"tsc --watch","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module-dev":"tsc --watch --noEmit --module esnext","test":"node test","ts-test":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.7.0","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.8.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"33f60dbd238e3136c9535f6d6ec767bce8e4da35","_id":"tstl@2.4.1-dev.20200222-2","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-zcOkrVbrNoh33lxpF+mwFhQzf+5woL1pnfZdSWP3J02TsCEhfMLQbQib5xFxMZc0bzDux6ElMCoNvo54RhNihw==","shasum":"4ccfdd4afff4cedc2c177cd4a644ff9b312d377c","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.1-dev.20200222-2.tgz","fileCount":611,"unpackedSize":1254981,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUKnnCRA9TVsSAnZWagAA2x0P/2ZUt0ks2Vvm/STKdtbx\nv5mINSIuJwXLpNi5vtrgXNqxeVCDYc3Q0wOBGlXqLfwLEwCpgabZuk1v3xdX\n5+wvK+yn3v/Im6EG/2ud+WhvkUJNIitU3wL08j8g1SgBSt2QLA1VDuShupCK\nT7igwIX7s4w68pgq329TMPe/8jQsUGujsAi7107+47zIulU/+ppkmXJ662PK\nKY/8SybcAgAiMIwtFAvM4BF1Lfo+F6RqwbNVS/RFbBX8frMOrjpxbUWGzTO6\nqVaLTNTcOepWWjEqdI9Tl4jyMiZR3JgLbk1YwJ3DTucdfVQtSwEfV9MAPFNw\nxbdBMo0mek86uO/rejvE18ckfPe4B8ozetw3GX7GMM1DGpv8rtOF7CyZAXkW\niZ1e5CwuruFjusWM0yr9W/Lyg7vh6bzChzD9wCUGP0PMT/TNvAlBz4/4Dq75\nrtQmW2RHpYBqPQBISmy/qFLhgIIxHf+cLP4vDndCO87kE3WdMlVts3+hSZOM\nbrEpymUYVUWyO0kj80TmYVy3PEgrB9CDpLZi/ePdtA2n28RkMwWYYhez1+HC\nSHFpCmhiIfAJLC2naLVFSrMWhLwgfDIVVd1tHERR/8qlvl57duYKip8senWZ\nlTqlop54d8FPKLz/KqGN7gA4j2osoe0qB9XDg+e4BtwWVp1KBXRfOMnCZn/e\nGkaY\r\n=ZULi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6X0y+ae7X1sD4vpEA1wJtTgT0XhXA+c2AVupfLeDUhwIgQuTckCvmQkMgbt3BoTmT4ktRcpVBGK3XD3OUIe8vrMA="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.1-dev.20200222-2_1582344678959_0.7725098091608755"},"_hasShrinkwrap":false},"2.4.1":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.1","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --ignoreCompilerErrors --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm run module && npm run compile && npm run test","clean":"node build/clean","compile":"tsc","dev":"tsc --watch","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module-dev":"tsc --watch --noEmit --module esnext","test":"node test","ts-test":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.7.0","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.8.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"gitHead":"970d3c24bbeb58c3f03fbdd5164ea62246f6aa67","_id":"tstl@2.4.1","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-6PcBl2HpuykWBVtCt8meUS7liK3PaJtDzrLJan2Sy6vxpeKj6W8EzomhknJyZq0kb3ps7kpchJB3yjT6YEB54Q==","shasum":"8a4128660e142a6557aa574234dcedfc545ced5c","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.1.tgz","fileCount":611,"unpackedSize":1254966,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeULEICRA9TVsSAnZWagAAhncQAJMl16d0PSv3d9LTAOQQ\nUl4HJ1SGyBxM0MkJCCrq1DA/t6tIdAffDCqUWHIA5rHp9rs4S4klFg5JyQwK\njMekFKcrR+SJM8LUnXSom0k4KXxFjbH7gKW0+D8hxrL8jrGegye4kK2gksij\nC07AAZzPT8Hm6/cGUbg8K+D7BVJ2TTGwtMZxD6W9VWPbQzXUw+XlhqN3OtVW\nUil4xUnRyUY5tG3Od5NYGWe6l9bW++KcLMM1wSLhsc2bJumUmRW+8kXk0g3V\nds9f0y2ZNNawQo3WJZ2uSapE4ruszpA8uh//9zUXPgcRxw/MUffZxhhMEdMC\nEmkA4oFyTlJwjpVoMI8R4rvAkGkNKSwYJV+7D7iu+28r7ygiaL3BqetJNiaF\nmHVi1QoSYPKD1gTN0U7uUNkKUqzPCLVV6u9qwAldkB79mpBKEhUrk1UDsGae\n28jvQjOEql1lts3inASiWuaN40ku4XJOmJh4OifgmKrB7M8y7oFwS2hHRxcI\nl6w7l3rzy0Lj4nJQaq1wDaPI12JhyLLE0YyTaPyHaM3loyPLU/n9ZuFs5u24\nASGV1iWUHjrq6fIzlTs3FfE0f4Bqh+NYn/sDqdDIcvTYY8lggRz5WnF84OnC\niurDn/vmFhbnucDgAfpbuBLb5Zk0CNeRzCOS3m/nYMKTHU4VYwLpG73yLQSO\naPgi\r\n=a2Dn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEhJ0gBuOmawbKLDJ6K6ydBqz1sp1xBtC3y4kBJDAIAAAiEAvPd7SMw04xYS50vB8KeVrB+d8jJUkmxJ5AfSCXP6Xds="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.1_1582346503748_0.904367847975676"},"_hasShrinkwrap":false},"2.4.2-dev.20200301":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.2-dev.20200301","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --ignoreCompilerErrors --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm install && npm run clean && npm run module && npm run compile && npm run dist && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module:dev":"tsc --watch --noEmit --module esnext","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.7.0","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.8.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.2-dev.20200301","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-Qq0+BT/BSHIHNLCMcEypUHksTh+W+Pj4fH3m3mwikURQZAjDt4bGBOw9PNYXF7vsIAAjmG44aqkEiMzFwQB0hA==","shasum":"baf785bddaf34c3f2e86a095a9ea735f5f887ba8","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.2-dev.20200301.tgz","fileCount":611,"unpackedSize":1255676,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeWxpzCRA9TVsSAnZWagAAo7IP/1WOH2jjjJyDNsz2E6FI\nXsIMisoBGFlDGPuGGeC35cjNTmZcx+x+EUETN6aIC4Awka5zrzRKfRnKCcxE\nPvnIWa4BRqow1anO7xcCXKJZIEkAvIQLf3I3c5DrounfWmaK4Yff6LNWxhu3\nBW7pJYNPW8OFPlzvR9Ej9jm0ZeBYD/waVsDNIV1xp9cVSgLLPczWZg/DkKrN\n5fdqInSdvhoCW10Qn7cD6V182hVOaSUkGkH+1bDWGY1p7v8Dxy8U5dTKbSpK\niSJIBbF867gLfK9A1z+R3PFQxTX+fXKGDu+l5AlUHKDuv77TEhJLq4M6ldJZ\n445e5In86LXQHDbByb6CyKbpippDUTV2TQvNDyz3Ydx1JjtwIIl3LOJB9ajX\nO3Cnj+D9YJnU/pAgMxRadzsMD9gFPVUW7jIfbK9t7sa333etem3z3LBKRyui\nRHPXgC4OMl+juasBCGAqdqCIkTANgtyWlHnjZOkWCx4N5T3P7QSERWGNP1Do\nF9MXmklAGx2CpYEbFNpUOqF6yLqLvkJNnX37HpxbA1P5DgiffdFCeX6qbKHU\nzrZWIeFC2aVUMw4kuoxH85fV5V8MForc7Gu/Fp1+4+KwWpyyQ/y66QkjmVr4\nFZ7FCGOaAwYsVxZE2w1Va1RWOW/qYoAQkf0UpdP/UbQ4dPup2kjMisnKTRMN\nwAUG\r\n=Y3HE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIARhyl8eXNbKouFq3p6MaEZfyRYM0/Wuli8F/mWkBcksAiEAoZHyoBrtHflI4oeHjzWXcNsYrmrKpDUQzqIR59akLJY="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.2-dev.20200301_1583028851328_0.13549055502392138"},"_hasShrinkwrap":false},"2.4.2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.2","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --ignoreCompilerErrors --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm install && npm run clean && npm run module && npm run compile && npm run dist && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module:dev":"tsc --watch --noEmit --module esnext","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.7.0","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.8.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"_id":"tstl@2.4.2","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-xe5Yg7joiCo+aFb97+yYX2MOOot3Q3auCfpV+Vc2VSg2nH75g9Rnl4Ocl0f5Z0Nl2Ec6ay+kB/DnVAxh09wuaA==","shasum":"24fbc08014d75c18fd0f31a315f78375cf0e5087","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.2.tgz","fileCount":611,"unpackedSize":1239724,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZHs6CRA9TVsSAnZWagAA2awP/jPOG/dulGtk5EIhFvqC\nGQmJhjMFtpQ6T8tC/heEwDu6nFaMMW74s/fyZk752bzWO7Gqv6zgHjhrg48a\ncQEUi8kRgy2oOWXxUU4Cq99BV1RJLsLa7U42W5elnX+ztgAY7ObL+6L6+dPX\nxozb6yXmNxp0cw3x9QvpFuFhtYsW6DyGCJMMwEQ8ipXeq89rDKIP4GW4rau9\nm9QbbfYWDZBQyrvw8OrsmsVtXPX65WF1XmyoBFUG6VD9pavCaJwQRhpBT5cX\nCIpCWOC1fVq7iSNDpjJwZ3K/Us8KSGc0GY7l6gZRt43J1O5Lf+WzTlgstNqs\nusIUZOekfcBwwGQ8IwPZybR8TOpqPjNg8csPgRbRHsP572kbwRPV42QbguZQ\nWsxKO8vMcJOX7FI4V2q4MmucxKdP00PZ4DVgf20UtJuNMpFE1RDNbqPxWOA3\nPHGO1QIoaJjCHhjUIqjBKF3Av6vbGTzW3WhbDlvXbe5WAKxS6+lUEUg1hOdV\njB2At7IkRR/cNAhc7Pubi3EuzcY0ZrkjdB4BMyeyPDsKzvvlnhSfvC05Y4rZ\nJohqeLAK95CGETVqiVDz2z0AVdsZaHA2s5jI251dyftHZ0Ur2b9KesBw0+d7\nEpDyWQXuDolwpsk7LUOUikI746/fIFAwc0+01XK20ri3f9snpGVVyVqtDbat\nFLfW\r\n=q3KY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEshUICHJiy/32Tlcy+3sUsoLe2va79zBoL13xDkyWQdAiAusfcBeNEdWrSlx6efCo4rAvtKBD34J1DfT33FLYi1vw=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.2_1583643449995_0.29338309970461696"},"_hasShrinkwrap":false},"2.4.3":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.3","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --ignoreCompilerErrors --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run dist && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module:dev":"tsc --watch --noEmit --module esnext","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.11.1","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.8.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.3","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-m2bSeZSSt5aJCx4sOaM2ZNSb/LiM4sT5el8OQEjRd50rpoza3flbZGIoUcyjL2XWRSCByvtjEm4Qqk9RQiK2/A==","shasum":"27bcc72155849818ffe3d67bca226687be66fc47","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.3.tgz","fileCount":611,"unpackedSize":1239724,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJekvKsCRA9TVsSAnZWagAAdcUP/RuVvDArLuGanDZRHGbt\n8swSISGum8FlAeNKlM0R67eTspnSRoomjfTdpjyjvcz1/1nAmXaf/6+XHEYq\nW/FDeFEQoLdgL8/u9OG73/3mkJTgaAP8jHaIfDZb41OSIlLg08Xgk5qX67ct\n39oQ3bCIWCaAFtXLd1h29b0hsZfZSsxOanETFRDabV5Wxmbbm3y5LaTmbsHy\n0wNf0E2ftlrjEDi62zudDicBk3U0yPc/xoo60tRkdJnlrcGTTvhe0wreQUG0\niFqWymfC/Ekkgde84D0Gt2xi2n1wRtI/v0xxDZKKmaUIpnSVXxWkE7yk5xUv\nOBSp1QF51BURnnHdoKBH7CwHuZkYJSpyc/5ohTBcpBtRObCWsq7pjyYL/oRN\n0vWNn4hHSJyQS2Bx34wTr791XQCJr1o3Z9/fLsvi7vknq5lepejFUKVZv+2f\nHIh6bD3V7cl/g8kX98XewN/yw+2JGoGQMFgZfWvIAXeIh0P5PKGvOQyxEGnq\nWH+rfUI5m1P0WMe/bLgunQ2aoD6Gw3XtSVQhsbK8getZVGBgD1ezOr4drDpU\n2I8X+rrS8OlLIVFFgN8qyjwYJn/X73UvpdnXxEtbWWN70byTDb43YmIsGUzC\n9bPEZb/3+ecOMw/QDjPt1AE2wugnZNjGDmyiytp2HQvuPC6J4OWEro83qY85\nfYFn\r\n=6O0e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxcogCDUgCwjSw4zjXuJYbx5ti2BOUa2dUuN/nXrs1aQIgTp55Sih6F4Y3VVZjOtW+CQs1HCiaIfDrRkVBOeQEEKk="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.3_1586688684257_0.7024649571738499"},"_hasShrinkwrap":false,"deprecated":"mis-published"},"2.4.3-dev.20200412":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.3-dev.20200412","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --ignoreCompilerErrors --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run dist && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module:dev":"tsc --watch --noEmit --module esnext","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.11.1","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.8.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.3-dev.20200412","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-dMssMWQKN69R2wZmNiu7rJwXY8fsgOVpajR44e/w13hklc8VxzRm5HUlxLVJkPZUsbSciGWMLOL2+7BVlqTxJw==","shasum":"cb6c1cf013e48f06643b7e7f2b7329fd8a2f9d25","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.3-dev.20200412.tgz","fileCount":611,"unpackedSize":1239737,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJekv+UCRA9TVsSAnZWagAAywgP+wXpixqHmDW1rKkiGlL6\n6YU5Shy54OAVwSysfSU7c54Y/Z+R+fpXXxbPJejvO4XmZL8PR4DVKrxmg3BG\ntS3Xgu11KVsQmtCPuUh0u5bnkgLRC+f6KZ3SwP5YaX0WFa2Fwsl4WzawBWlv\nfv52TaIiAQR9VHya9cznMnzM959sKoxJPILA5CWA6XAyLRLaIt6KX0VTAFMQ\naJCFiaH4hvQNLIKgP+nAbHhn1CYI36Xaeb8w/heoYJFm+vYfh5pBsZfwET6w\nXpb9EiVuf0ZoBZeMDQOO2WtjIVOILcsc2RbTux3ZxHJCn5bpvUB8E1736vkc\n0O7U2by+DrsREiu7wAoRu3knwsMQ+gREDSVSJeTyZQoA73MT9cVQggJwUXAa\nYhGgx4hEcdVcXnXmaCPRYpkFhVUheePjZS5+ptB5AniuupaVDVJSRXqbOyUd\nm8WMJjDzVqSbk7W3vOH/Org3YP7H+WBMFcDsu5iKbJTDTxXt8tXLQGDNIBob\ny/f6pYwzmsEOrWDquL5EywKQvNXbjATiDhgBPK2C4L9yzXNYqjpsjB3QrAC+\nvs2jm1bsFPjwV2mKbokofbSEdxOx0ySH1ExoSi/WIkyfttvJ716rPY6A7Zz6\n47n1IxGixT8+YRuDlJvzmvv/xYyrffuJHPoNWCiWTQOA67MboHqR7TxZ1Xy8\nYbMK\r\n=99lu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHXMQbWLq1yX5Z7ojIRRq5akh/f6XBONF6nUwTmjJveUAiEAgJ4qDz+WyAG19/mutbJkIObuZMtdB3RifijDs/G1efU="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.3-dev.20200412_1586691987735_0.21238921317280757"},"_hasShrinkwrap":false,"deprecated":"mis-published"},"2.4.4-dev.20200412":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.4-dev.20200412","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --ignoreCompilerErrors --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run dist && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module:dev":"tsc --watch --noEmit --module esnext","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.11.1","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.8.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.4-dev.20200412","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-4rm/FKbrN9mHe1Wkxe6xfR0619CdonxA/kJjKRnbLcX/wM4idlQAnfM8fP7BUnw3odhhVhOcA4oC/tyrjUgMcQ==","shasum":"4b9773722ca417f478c3014d368eabcb6c1cc7a3","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.4-dev.20200412.tgz","fileCount":611,"unpackedSize":1239737,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJekv/GCRA9TVsSAnZWagAA2jUP/0PlhFnt0VVPTgW3g9gw\n1DR0TMyJ2gzLRs8A6F0XjJC+t3qrNeTrVaXxsnplP2TdIcAJSUaUiMfPzqHz\nw6Q27zF1pxFOL/71cN7Viz7HEoNoH57XTHsI2gkkBADNbxgCKpIRs7uAWknf\nQ0UQiXl4I+u+NGKWkvkL/arwEntQAPSNkFaeQaWgvjvCQx+G2cR52nFE0IHH\nvmqKdMq5ij8O5GmTVuWFDPaA9UDWaJbx10YbbTQZ2lt86bynAZRrifnmFPN9\nlbzBXCahFBGuCcogozPWFIGUo4jnLU2dizKr/uPUrc7ysmSJO9AD3ASCo2xI\n5wUlQua0PKXfSazZ+bNWiHPdKsenZNzNY/97Rw0hZq+V5DBKJRd8DFqlpCOw\nomLGYu8yyAjhki4dolMdC90ffDDhjBIATJkYToK344qb3vgmttIrADAEyJg1\nDFYaWOqR4ZOBkoqi+vOJSFPcZtoiiXTg7xCujNNJBHnEaXAREojSf+IMysBH\nUoeLgfQnjwaRWhjTcfu0o2H3MM6nba7w90MWlKgiQ4sEOPSL6C3pn1ho4523\nqSZtRqAfOrM6PlSUe0YkmFJpcVNg0LeB4QZXFBEcI0oKwP4Y8J5h4DHW+QGp\nH+DC3+ESzaccVMITMoGTuxRzu7vIcVFTIl3GONydr+SHynRJPhejj2kJdYly\nAXqm\r\n=lkEw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDopg/nkdBR9GaORxAzUQ2QjZlNeDwxCmC+Q+Cck7jRrgIhAPDpKcEcKyBD0VRgABNDd5GUj1PKuvEXwrL594LABu8/"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.4-dev.20200412_1586692037630_0.48846417882841764"},"_hasShrinkwrap":false,"deprecated":"mis-published"},"2.4.5":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.5","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --ignoreCompilerErrors --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run dist && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module:dev":"tsc --watch --noEmit --module esnext","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.11.1","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.8.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"_id":"tstl@2.4.5","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-iDqMJeiXETBXN1CFkv0uxVfp9ySumqMS0J6MDZ2bBY1WBevPYSkJrBVSgu5mmqRd3gIHwJmgP0dlJLUjoerdGg==","shasum":"f3a8fd6e8930c2ac59701e90d224db8664749ada","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.5.tgz","fileCount":611,"unpackedSize":1239724,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJekwQTCRA9TVsSAnZWagAA+vMP/3D8oMhVAJszfqUUdyQn\nGS/24y4KytCzUTus8G3YjCn90roU6Sz+p6d0I34gayxrKIdYPmSAt1w01IBT\nAnwCIMftbEND6on3H/yEG/kAPE4NRcyOnRRP7LHFseQEabpvZsuzQxeJSAhj\n9iCIWHoViOD5+yXqKPT8Gisseek7SnxY56xKYqXvfk7CW2AeElD9dQ/PQleU\nut8SVXAuN6WO3PPvURk89IA+424z7N7rMRjKzMmGfUBlyDkuyNJ9fEt9zIbO\nVBEtcYWkwHt9YcN17zsW1PZb2Brewu1Aka7n0hu1hoaHVNe/9/kFYeUmNTa+\nFjfY5ajdzNkJoy1HSmkvoqGhnz0KI7G+8CdZS54zxoGA5ljXA4Y4WP5iVD61\n68uaEKzpgKnUn4wvSQbRmHc6FbqyWu6ctxZ2XXJ/0VtRd+qc8loGOYgOe/L1\nVLKnB8r9XpgcCi9i8AABmKALI69m45OT+t08kw4hEaKO94Uf2zHjWS/f5zfv\n3WdDbNS+UQ2MiqhZCT5kF0z2c4jR6qdH3bDWWR0jsK1+cVNyd12LhvCD6qBr\nS4SVCtwJ7bwiMAclleJLD66bK2oRvB04v+d9lrji/1yRBPvACVTB2r91aXKd\nyblpOaukDZvb4KbUo6yIzlZdeSf04uKHbeSLm2g9F8bnvKDndaxhXObSsFqb\nWntN\r\n=cNIP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHx0fw6JtFP+mO6NWI2ohXDDqZ19SMYkksEAimQqqLS/AiBTTP7Dmc6vzBqDjbvK+ia+Y98wPR5N42IJxSjY5YBKGQ=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.5_1586693138809_0.13339582132310546"},"_hasShrinkwrap":false},"2.4.6":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.6","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --ignoreCompilerErrors --plugin typedoc-plugin-external-module-name --exclude \"**/+(test|benchmark)/**\" --excludePrivate --excludeProtected --excludeNotExported --out ","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run dist && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module:dev":"tsc --watch --noEmit --module esnext","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.11.1","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.14.2","typedoc-plugin-external-module-name":"^2.0.0","typescript":"^3.8.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"_id":"tstl@2.4.6","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-ILoG5mpdtxQDxOvX+V2O/IL+Q8X/SAnR0MDGbEYceRbDZAymONJdYAPxKamCwjH6E6VWUT0CYaTbDHOUWorAzQ==","shasum":"8477300ffe23c439d20e2b4fdfd3d54245de16d2","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.6.tgz","fileCount":611,"unpackedSize":1239573,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemP/ZCRA9TVsSAnZWagAAgRsP/0EWizniEDWwEo1Xhz3q\nLCMIEN1C0jcp2eDj8aydd+gwWYmGzSj7WYyXQQmhgvh9h6/jqbdoDF629njx\nGqizcpmTuMoq1+FqT3S0cNwympL/FuF+Ng0L7FQ1gJQpoV6JMmkYtcwEF9OF\nMd34qGxXvoWX7xBjf1zHaUOL7ZoMtoTrHTMpxrvF6U9J4H13V4/HSZ8q//ls\nXEgs/pyHkp8y9LfaikaIMx00qX4k0DXmHHEQGBt0VKj6gkEb0nZeaM3AZwPe\nC+h1zsiUy54EdHS2q7XfB+73xqkvyoDhfiAwnbkd/X2w41kMybteBykrQTFC\n/PkXZ8pDTMGJhblDslDCQ5nq9iaD7aE/BtasYCR575bY+V6RrVAzZr1zYN+G\nMIVXssmwWT1uvfMw5H2YoIQjMJGJCPLy2qEbuE1OAvee9kt7BHmI2heJhioJ\n7Mk2gOn/kMArAj7D0+fSLSZMjqas9INUro6zVqFV0nBou6FvuP9+Kw4BUyL2\nUchqiLI+uOfyPFmNpBEVaPQDdRxt5Qxt+fIJRgm0N6551c1JErmHnGcXem8C\nD4OHucOB0npWvH11eIFlkm0GDukWovvanpuY9q2YJGKE+GVA9Tf7da86a9rr\nfQPANYQ+1OQQ5DVxMpfQG+AuP8IANFZXEFBvkKt33kOFY2QM8w9vWzDoBaFQ\n7JLs\r\n=q8NR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJuta45U8/NR/Z3uCMqdjVgPHnn2fQyScIGZfvcVCSXAIhALZD8I6fZEImEwcWi3jRJp86gHN8PSz+xIVSSYkKHqS6"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.6_1587085272900_0.7422677524439505"},"_hasShrinkwrap":false},"3.0.0-dev.20200510":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"3.0.0-dev.20200510","main":"./index.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl.pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run dist && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module:dev":"tsc --watch --noEmit --module esnext","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.11.1","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.17.4","typedoc-plugin-exclude-references":"0.0.0","typedoc-plugin-external-module-name":"^3.0.0","typescript":"^3.8.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"228e2471f1581c47df72990127543b9fc4cae098","_id":"tstl@3.0.0-dev.20200510","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-J7lCF4pzfTTdnyvhJ+QzWPa4wd3eK2FVmCxBmByUePKW6UI3rECndG8kQNqTXoIODW3Mhss6pXqvzupniNVViQ==","shasum":"eb204319f6e04538a376f5c3b1f771a7b0f34fb9","tarball":"https://registry.npmjs.org/tstl/-/tstl-3.0.0-dev.20200510.tgz","fileCount":207,"unpackedSize":740024,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJet65QCRA9TVsSAnZWagAA+csP/jg+huBhAEEpYdN+FV2f\noenIQP9ZpfKFc61WSpkX1jFv1ZLKKrAW2l5+HKW8F14uCzcJt/x6TDcP0QPs\nj0dhN+vWdxgaicAn3+chieH3au8rsSsoxjQbsF6EtmzfynDPDFmaVP3Re+Vv\nsSa2mJt11QQPYH9kXkV8cacJWJfpicHP+R/lN//rJAWV/Me/Ys6w/BtnOGA1\nfO+RfXUULUEXMSUBF3/lymx/0+ZZ+TyEUA77+zIv8iaTzE4MO1LuU5x6n/8l\nGyV1VUjXoruPSBlSH79QxU/gSzRICCKY0osu3yB+PrHP1zGC9aR9BvGz3ZRR\nr1ZcMsoigf0hZQ/jKMHd3HhAfcybtgMtbkam3mI7HMfyqP5DedI5wSwKxBPN\nZ2JIV0gzFyLHTCAzJteDkEx/mns/ArV0NMLbkKb37PZgqvg/7Vp36p2U4QAQ\nTnagukV4ACHVWuGZobF4fNrE4806oveQitAaQBoxlhSyKmIeMWQwheBKBKUo\nim4aUlZAMQS2+NeuFQNwyHYuazy+THZSyJc+lrJnIHt9IK/ZVzEi/4eb/fFw\n292CavKA0Er1qPhI6aHm7JWJpxfCH77zaZgc54evexjpHLKJoHBmFQbzfIFb\nFAP8+Sb0daIggWEoBgsUS8TErbJ5bAdF5fq8CIO0VRRaFxJ9JTGAIhfIBK09\nDkQT\r\n=NF6P\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH2d84LCysxlbBkF0ebJEln59P695anqp3VpcAmQJ5ajAiALI3oWP5qc0W4fg9l0KfFa0pE+6wfccfyWvjPKtSMC0w=="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_3.0.0-dev.20200510_1589096015783_0.9930452853305016"},"_hasShrinkwrap":false},"3.0.0-dev.20200511":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"3.0.0-dev.20200511","main":"./index.js","typings":"./index.ts","scripts":{"api":"typedoc . --exclude \"**/+(test|benchmark|node_modules)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl.pages/api","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run dist && npm run test","compile":"tsc","dev":"tsc --watch","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module:dev":"tsc --watch --noEmit --module esnext","test":"node test","test:ts":"ts-node test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.11.1","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.17.4","typedoc-plugin-exclude-references":"0.0.0","typedoc-plugin-external-module-name":"^3.0.0","typescript":"^3.8.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","gitHead":"6e3622e323359af1c629f870152db760d05967da","_id":"tstl@3.0.0-dev.20200511","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-xyYVBq+c4FZGy/cmsDCIohJsCr48gUq7FeXwZ0fY8LlSQrUyb+CegA/66Evl8AuYAW0L3gNipH8tbD+44+6Y9A==","shasum":"f0518ae228a4d1a616f659536f9b3a95d8714ec6","tarball":"https://registry.npmjs.org/tstl/-/tstl-3.0.0-dev.20200511.tgz","fileCount":611,"unpackedSize":1643568,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuK49CRA9TVsSAnZWagAAjV0P/Rn1elvsm0KoG5J5t1gt\nCWjfo7iq3PB6VuCpIr8S0jYr8Xrz3Eg6MEWNsaOQCQz5qfcZwCbcxgyx+VIc\nruBEM/IxMDo4PYor0+Fmiu5gm+9MoLbK16d6JP0T6VPtY/GFGwR9x5fWkMXB\ne2RzhxlZBOaMmd6CTPamd1OloFjCvAW2t9KWkFcYAJFwvvLkHVpx6ve2cAJK\nvDk5zYifyRXzbwHbr2NjHy34i3LvgrQ6jzbyCiF4XnjLaw+OC7xhUppD2Arn\nks97tOWEC6PXngPo40PZAeGeiqjQz31VHnKajB/D2qteGdFdV06Z4kcmF2DW\nOIry58gKDSVp8CSkdVx80DnyIy0vtv3YHEJq4BTwrVWfVWoTpz1YBPxqmqa6\nkR6xdGUmK9yV3P5hvEWf75kGxHBP+J2votkARXJqa7mZwPq6/BWmUuwqhbSG\ns8EplYSGhOrxgvZnkf/pztlsGIiCDbDvvXK6hbiwTQlrWB6E+nM6ACLr5Rgx\nCoT5j+Gk6E27jYRWQS0as8PplHUZqvmRTFMrN0+ZAcad7Nm2KeHlR6NK3gCm\nbfpoqVtAxXalXWHfyeZO2sv+mxMc31Nq3m48ThK4vxmubD7EQSp54SWDnMLr\nJqCp5ev5SzY0XL/NZcMZ1nSEkkHLSY4xAnUMrym5xDwVt0QoS6f0FPV1sUC6\nRuIT\r\n=i2yG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBjwQPWJXXFI7rFJL9ZJ4n6zCX6UqhhIjXe2Oqdus8QOAiEA4087NQjHTuzGLGIZfjCGgf754PgiZDi6BDtVDT4m5UA="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_3.0.0-dev.20200511_1589161532292_0.1699948570779004"},"_hasShrinkwrap":false},"2.4.7":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.7","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl.pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run dist && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module:dev":"tsc --watch --noEmit --module esnext","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.11.1","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.17.4","typedoc-plugin-exclude-references":"0.0.0","typedoc-plugin-external-module-name":"^3.0.0","typescript":"^3.9.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"_id":"tstl@2.4.7","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-Ru3eU+XKU3w9MDtWKrGWBFKy4JhHBCloWJyWHSbkwtbrKNA3mTQoMrPD1v2atx4LtFQwZn5W+u6VHVpSgL5hJQ==","shasum":"76c4ff02bc5251b418ac4a6d30fafd5197eda334","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.7.tgz","fileCount":611,"unpackedSize":1273979,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezbPSCRA9TVsSAnZWagAAFwwP/10ddsUWBekjNoDPtk+J\nXpmkRvIt1WJq6bRiDiich5K0ooV+VaCK6LAnm+yunOYe4Az/xTEfXIR09z88\naVG3RNugyyctVxPUQjWu58dNbEiJKPQwzsXDgTFB+QZUxCHWtkHADmSPYL99\nyL59J/Wex7s13n0rsqS0xW79bb/njWZJTXf5Gn66wdYiKSFF1I1V6sdzWtan\noYYG041VenODCQUm6UKCqvJ7K6VXLxAGV8uF7MiHIsW54xTgq7XJwT57irDP\nBvebgHlUaTvD5SvaCS8XcmjaqPNRwSYGj00l+BjCetdqEldUguOY1pifAxpy\nKWuO/YdNDQlleJx2EVLs7RHgdcp0CO+IA6PU43Mz5AHzWgHcTSK17tcAp8ST\nIF5C1+mTdie3myaub2spJiW92WMKYZdF9Yukw4RUmesCtPqYB6lwbHq5J5Eu\np/BmV0wv8hZ6dyLeH1WJk/oM5qQ7osu1tE8t4qsGKZMPmfsL2ThhxwbNK271\nCIiu0A3aBRs7P2smS9dpZrEoJrCudz7LDlTLD0lIhLkhXE3C9joWRvthhbTH\nA/V3zhNefS4+i/NzttwnWxV+v0Vwz3DsOWPZZnM5KvNdur7O04uEkahybRJy\noP8R0Vdj/YKMwcpOgBeJ8jtjuMzSa5VLLnbqD5pfJ6ADTTomVSInLOMCbjVx\nT4jN\r\n=/EHU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICZftpxGUqN/8plN/V3Nd9DRsyL7LWSCZ4o6ODySdrFMAiEArIOouLr1Qw+Pl7d20GIzWMzisL/+2oUZu9Fl4W/nd50="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.7_1590539217502_0.9699804483372898"},"_hasShrinkwrap":false},"2.4.8":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.8","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl.pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run dist && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module:dev":"tsc --watch --noEmit --module esnext","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.11.1","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.17.4","typedoc-plugin-exclude-references":"0.0.0","typedoc-plugin-external-module-name":"^3.0.0","typescript":"^3.9.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"_id":"tstl@2.4.8","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-qa9oI4mKhtprgVA9BVkSK3Y6Y19ufGWBj5UIGMrrvObjVfmPUkP0UEfZtbH6w/u1ogegwTlW/vH0/Sw4PzixgA==","shasum":"93e244794096d0c9949b0195597a1399b10f5931","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.8.tgz","fileCount":611,"unpackedSize":1274206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe3ME9CRA9TVsSAnZWagAAx4YQAJdTzi5HUECrklns0bML\nFN78WHJU60m7/4uHXpcGhHL4ApmkwvucmZ95I3SDwFN5GQfKub3o0VekPZPg\nS/A4qEtJPlG6ImWBnPZe1Ehqjiu+7gtOKGuagez1gpHw0aPSwXLjhKta6+Ow\nmWzvh9yhqWXGnZMNdCqXv5YRMYdnRFOcl2K9cnqEqEEClvhDQ6IDcLZkSYjH\n90l6Es6lFTerGSc0XR0DwKrefj8TtdtpA9ocbYTjlQTELh8BQdaNOPi/lh8t\nn9SJH2hgzgPbkqxgGwMlsUjk1Cy/tZcipvHt4ZYpn7TH62srPbtt+6d+/Bnr\nF8ZcVesR76PbgXJpjD/2+e64Rx1BQwRjG1Y6uxscsVcfz4pDycjvbROEXeL4\n5/c1lafkR/NQvFZLhZMeEVu6i338GTAj4Y36pY+ZqhQ54Sn8Zy6NrkL5rb/q\nM8740y1Q+nFAS8sY2SCsoEz2Ls0d0+tur7ywplyoD2Gm7eIXI67lTxa2VXXb\nYXUoWeKRW6qEZTnnf0Zis71Gpbbad7pb7cFzAWtZrgTDOH03pC5A1w0hqEhx\nW9Ang2aWi9JiW8zDSymZuo7uatHgSO51XEBFi94SLepdL2ux6vjnXlCxh3et\nln0VslGsg3EZ9P8XpylkvZH30kHiAq7MqELEfRMG5iI5JFzlbb+ugoYUD8bi\njXaX\r\n=lzhI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0BzkpfbiJRenu43VRGQR+xqNwN1Yx2v6roshDj3p99AIgQSkl2cvkluF5eHSypHX6MCAKGJsBgySE6nd+UxPgddM="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.8_1591525692326_0.6977511801314193"},"_hasShrinkwrap":false},"2.4.9":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.9","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run dist && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module:dev":"tsc --watch --noEmit --module esnext","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.11.1","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.17.4","typedoc-plugin-exclude-references":"0.0.0","typedoc-plugin-external-module-name":"^3.0.0","typescript":"^3.9.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"_id":"tstl@2.4.9","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-nABh0MYuNLpaRf+dtbudmGlnUm9TCZ1vociu3N6bNbet7vpUUxfVI90mQECK9DO6xaVh/72J5BM+AI9I2RnefA==","shasum":"99f3e2665fb947164ff75c82bf05c384a89bdc26","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.9.tgz","fileCount":614,"unpackedSize":1343436,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe73QHCRA9TVsSAnZWagAAtOIQAIBC9ynZK/EE0kU03y2f\n7OlhPbkR/LLbnK1qk9zYOk36dUYxiSIF20bZXHumg/j88QiZbVHvEyWwFuuz\n3mrV8NaMj6VZna8Sfprpmex3rLQ8YUx8fWLC8+r66ZJJdvGjDlYf4vaHg8Yw\nkh/MYapSXG0jsOz7fD0vm0r5RvO0t6gh3CUJWU7UF0x2watQoidzWcczGZhB\nS+KtL22M3RyBv3DlHaRsvdMEFIWV+NR+4G0y0vyZGprtUKpYR/EvzgyRchbS\nhzXIvXv0evlavr6CR1LpdtrqhcS+R/4cf4CS+35NBWz+O3BtoskXjzJXqRps\n4uD7jJ66RJ8bPyfGZibFhMG3j+eogQriOLcyltuv6POT0aOFoE2P5sCN6psc\n4zxO9TwLOg2hnzgRVvKMC0U7by8L7EAZYZ3asn3AgSOFLDepm0MfZUekCFMX\nCoO63pg8iw2TndTc67j1+Kj3wQugTAXitYblA2wo5Pu2c2lhyvo2KTFU/0AC\nfVF+CdI0YDq4ABYjEYAnE4Y4DR9CL2Hro3j5wVGcRE2FwNnUsLX7ClvJJbvI\nRv/00JQK8in1qlfDpDUBb+aZhn36S695ElxN4gWlkouTYD5b15uviT0lkgEx\n0sv05/Q9lBylPh82Q3t8QU2TsJmUPPKNGCSqhslLxzoKSt4kD0assYJMc4R0\nKks/\r\n=YKdy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFa6bta4g4nohb83tWaYEnL9JbC1+FTdXscrIw0F1pJsAiEAvx15I1m8BVP6t/5AAgE/iFfd/Nnkk6xa7gfji9dC28w="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.9_1592751111024_0.266559190645975"},"_hasShrinkwrap":false},"2.4.10-dev.20200627":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.10-dev.20200627","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run dist && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module:dev":"tsc --watch --noEmit --module esnext","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.11.1","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.17.4","typedoc-plugin-exclude-references":"0.0.0","typedoc-plugin-external-module-name":"^3.0.0","typescript":"^3.9.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.10-dev.20200627","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-dQzHislwMHmVyTKeIx31+kr/AkXb9fo0OzHr1s7VwB3GQztLHRdU9tuvYNjqg+n4uTF9sHPCOvSYODTJSdOtAA==","shasum":"a7f8a53a2eecf0ee744a9a0853fa0072b7e025fa","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.10-dev.20200627.tgz","fileCount":620,"unpackedSize":1347136,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe90RmCRA9TVsSAnZWagAAeWAP/iJkLHX60szpM9ziYSFv\nJ7DqOiqWekz6rZfVAczacxexEOtFzBv6h0NJxDFPUq2kGoZmqKn8io68dhAV\nk3JhEqkoHuNrBH03HMKq9DwSpPxLUPkCkdJIJf6ZmRkKfwq7eJGAOS1KYGIy\n2Ip32Hkvsxdao1uG9ZygXNbFKLn7FLvaLJQF1hK9DTRpGQ4Phd404M59pEXI\ni4jjO97SCY3h5KHT9EJv4PRsMBw37Qna2qig29FLiGZsmCYfWtfgo8cvRv0e\njXlFSvZNJhirHN2PcnGHhqpfXx35wSdhsCEV3eCjleKtBGYx0Uqeld3OSKqB\nJKg2VBojqxz/rPiLeDSaAuEJ+6+OuuOTfFun3SqliEi6RtHS5E0ELAGeeNfJ\nwRxlRSB9SZYhMXzft3TssoVtY3R+0la1biCuchrQKjE/TpMgtD20IYX3heuc\nRnGUl1yE6k1VxxFzg5nBnDayA4k2IDO3qNqmqU5KsBx15DyE3oBIkGiqV3iw\nza68AcHb96odJ5Igc9XhXwkt8vgxazDTK8CibJSBcL9nhP/uForLnJi/5csb\nLWKTIcEqYFS7kt9YxgJX3cyqNy4SjjvrxSMjUIIiCRolvk61sabhiDz936fs\n3UwqyaSzZt4rIfOl2BDYsThR+eu0AxgrcSJIh/RHpSrnRYKEl7DkZy1NvcHU\n2tIB\r\n=cpCq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhWk928VD8quZgQ+FKSWc+JMExGFeZyoVlH3Zw38MJkAIhAMbV+sTYYi3dG1n0J549Oa8WdWqGlzgZDFpKXtr1LHFg"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.10-dev.20200627_1593263206040_0.15940944229239018"},"_hasShrinkwrap":false},"2.4.10":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.10","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run dist && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module:dev":"tsc --watch --noEmit --module esnext","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.11.1","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.17.4","typedoc-plugin-exclude-references":"0.0.0","typedoc-plugin-external-module-name":"^3.0.0","typescript":"^3.9.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"_id":"tstl@2.4.10","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-0GpMdPTkd2YjiZEK9jCiDgzrP37XwIR/rdhG7MYO9ipowBubCGlHXQI3RRtTL7PTWpdxrwB2bpRbCQ2dJlt8Lg==","shasum":"da85d364ebb6617e1daeed5a24376e3ef608c173","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.10.tgz","fileCount":626,"unpackedSize":1351004,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe90edCRA9TVsSAnZWagAANzoP/2kV6iNHrKaLJfqmcdxa\nCtwp1oUsAzxJMZBI0fQqbN9KM2jJRXpX7Gg6UJuu39KwIZPg28Jg0GZzQGsK\ntIo+AzvnwlCM5XgrGzp2bPFNb6dIrjQm8n/5dODzoYG5e4Vzaz16vKd3gKUk\n6N6I/f2nfy92cy4v/a5Yx4D5XLl381UIrB/TIuaLRsvBsP06gh7ir1synJh2\neHW/zRM5zTkq/2HYgnUHnVJrHLlK9UmudHw6S5Ysh1AVUW3WL/Xk1JcfX2+r\nlsRo2dooW4cO9PxF/vDO7kXIYiRWARQ3ZyuHxetX2MFRAUGspxuJx60R3ONF\n/NzXSuOY9s2r3OJAeIMJ7taDFEIj+w5k1qUyLQHxApUMGHpHm1WeL/byyXqV\nbp+Tr32nt15PhM9vg7vFQJ5iyUpNOX9ZOnBZfmcmqvD+cT4yejER1UBmZiiB\nT/cUCOtLJmTVDqZWwm8jVmsI/n98nQEVLsUam1aFCW77sB0suYYZL+Y3cF3A\nEQVS0zIFd1ycrHlY89Y/H5n8Ac1onipHcTs+treeXIHjdibhh1ysrZcZgaYz\nze9KG3vsTPqFJHK1XgWCRKa8AIyboTtCSKe1ykQEN0lYwzAxTJXRIxaVrRm6\na0t47l2FG609k3dRt2Ufk4DUMManDwXDcS/bmMCF+NZa3umrSa6t3W7oujgi\nuKxM\r\n=HO/o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMt2kz/7d/U9ZQc7WWbyQiHlYiBr31cWMlHU19qFdPrwIhALbK+75o+E5rW5HaYYlEzNOhFLzknq85QLT2ybPg9SWT"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.10_1593264029167_0.9945817616910344"},"_hasShrinkwrap":false},"2.4.11-dev.20200703":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.11-dev.20200703","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run dist && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module:dev":"tsc --watch --noEmit --module esnext","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.11.1","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.17.4","typedoc-plugin-exclude-references":"0.0.0","typedoc-plugin-external-module-name":"^3.0.0","typescript":"^3.9.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std = require(\"tstl\");\r\n\r\nfunction main(): void\r\n{\r\n    let map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    // INSERT ITEMS\r\n    map.insert(std.make_pair(1, \"First\")); // Via tuple\r\n    map.emplace(4, \"Fourth\"); // C++11 Feature\r\n    map.insert_or_assign(5, \"Fifth\"); // C++17 Feature\r\n    map.set(9, \"Nineth\"); // Instead of the operetor[](Key)\r\n\r\n    // ITERATION\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second); // (key => number, value => string)\r\n\r\n    // LOWER_BOUND\r\n    let x = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n","readmeFilename":"README.md","_id":"tstl@2.4.11-dev.20200703","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-wK9KuPuhnYaH5sDfmrJLJq/t3sIPafkND81ir0xh0FXJdiVrZgrh4F+KL5QJ4CCHJAXGArBBtoesABIffbYYTw==","shasum":"85e279354bc7aecc71c9b9a438084b75d14309a3","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.11-dev.20200703.tgz","fileCount":626,"unpackedSize":1354476,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/0IsCRA9TVsSAnZWagAAziAP/itjbK8/bFWpIIunvJuF\nCzKtb6BLe+3yt7606J0w+ykTNxuyJNpwAAtiRY90KKNlrshUgo2ARf68PXl6\nq2It5J9Bae0VsfCK//85zN5ARTfnhrYy+IJpaBP9rFTFOb2yDe1WPb3Wk1j9\naLEXPKN6QDxWMIYmcbPk3kbfo8TpH7qxElAx7+C/rEz+cThmdNqJmDDsNnsM\nBf6vegjnh63WMMtS4G9ETIcWifxRHGpBeq3y6zXbp7Hvp9XmxcrIdSc8PRWw\n7cpJZ++eNfcbNoQbNP9hTDRmZCmWK6itp7ecbEHrpJDbj9LqoZZNZ1NlaVsB\nQaygcKFfYrqg6mBWOPwDCRfjEIakAYKT2UUGkJREDyiL2QNsLF8bnewgmuI7\nxkEjE8j5JbqavRWa+wWfdH5uM/H7mizJQYSsKiUQq3ikwRFSMQSnXFuKX3kt\nDA+Hp0oG8rdNtCssWkfVx83xFezulS/L3TCw/wN/Ui9/YTyxlBRYD2yzz5rW\nZM8qxnVlzLbTqF05F9VBZzLfnla09Jwfeo2zELO+mYOWBJ5zIH0NjXrNMB2s\noEdssiG2NgWcmabDR2QAM5lfaDBAwXiFOJmaqPt1RMxO4aLQMwAn3TvnQ6MX\npRELuip86CDG5KaEAJxPlfeCBVk0/BbeVw6r6Th2aPavTq8aMARX0OaRNg/H\nZOZk\r\n=mtEX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDN0sj8aqrdVgDSU4Tj2NmW9fmqNqKG8QCN/GHcBBK7HgIhAMLTx6rhpTwL1RpE8nGV1+EzPjZlV1MbZ71AEKgMYur3"}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.11-dev.20200703_1593786924153_0.473868332850476"},"_hasShrinkwrap":false},"2.4.11":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.11","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run dist && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","module:dev":"tsc --watch --noEmit --module esnext","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^13.11.1","cli":"^1.0.1","source-map-support":"^0.5.16","ts-node":"^8.6.2","typedoc":"^0.17.4","typedoc-plugin-exclude-references":"0.0.0","typedoc-plugin-external-module-name":"^3.0.0","typescript":"^3.9.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"_id":"tstl@2.4.11","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-6zv4IQC/mD6F4EuTeE678+bESVdkDuDoSz4BEUanaotNPm90jzNyWl3cONQjkOdFSTY8vJAnyMYS6q4QhQf2rQ==","shasum":"d7b478f8af5d8051ea7ea54f4420de4df900911e","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.11.tgz","fileCount":626,"unpackedSize":1356583,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfANKHCRA9TVsSAnZWagAAaS4P/2vzP+BN4yefiViQGaUZ\nyZE2+sHBmOd0gUYM7UOvZUa20lo6QYJU/qSUnj1nk2P03j+hdL/4hBjxDXcr\nenO/iK0YM0YczAr9qTmID0pG1pWsUdV+J3MYZ481rEDV/C2JWn/0H3I8ZWUM\nXoT7bRg18OWy5ta5+DeTdkipt2LuowGuBoPtBmTQnHaAAb00qmLakQ/PvDFW\n8Y6tbek/SnZxFuHnIQ7/n2Qm5EEBO0Sd4bf9Z/mv1hibpAnTl70gZqDjOWbS\nqj2G3mCBQZlZjB70tzOfMHWDBwIBBrQzxCpGkyql/yRtU/TY/R5gkVdaG2NM\nFYEgY+4M25jiBnUuVuakid5+F7tcLaT2XWd3Q3guJHLz84iq3T/+tulBchPQ\nN7/F7ImiTI6U54dLJXAoNPK0cEjF5N+FqTsHIGSpN4AX0u8Ndu39QVPFO4l6\nc3YzBPpqaG3TwatCdI+6ixD8nPGsAGC37NEXUmNPUG95/73EcEwq+y5ZZqFA\nnj1YAp6UuGKYSZ6ydM2cYRHPabQydUuYDUP6SIwkUC4q0AeZW/C3Jj5pS9gq\ngbU/YNjkMCFwJ2jjmgRW44HCjROmFFbanWmwTQrJHhs9c1L47pHsnt6I4YT1\nG6KO0FFVRp8qgVgbFi6kVT8JDuC1ib/9XZufmNcQNTDbDBF7AMkydtDKOjHA\n4Fl7\r\n=7E7H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDWTQcnyrTqyULWpP13c6E3KjoAi81+htBx2CObo1KLeAiEA7eLxMwQWIsxRK5yKiOGht46fhXSXAK8LkIxqPhR38as="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.11_1593889414596_0.7556750318681156"},"_hasShrinkwrap":false},"2.4.12":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.12","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","source-map-support":"^0.5.19","ts-node":"^9.0.0","typedoc":"^0.19.0","typedoc-plugin-exclude-references":"1.0.0","typedoc-plugin-external-module-name":"^4.0.3","typescript":"^4.0.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"_id":"tstl@2.4.12","_nodeVersion":"12.18.4","_npmVersion":"6.14.6","dist":{"integrity":"sha512-VWchyrLg9Bw/MFet31+uNLPYud52kGDVLsQSZJ4/T3Uu6m1m2/5RfdYdlV6RKmXeDlTbc8Dklkwm07Nhk2FejQ==","shasum":"a77e49cd3ead170d40b1d03263ff183de5e007b9","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.12.tgz","fileCount":626,"unpackedSize":1358889,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflEx8CRA9TVsSAnZWagAAstAP/j09jrUzxGZlP1+wYmSK\n+udSBL6+CyPbpC3tkxd2vg8Z5emEyzcVkhj+vWb8H06StUhjAydZUlhV6Zuz\nKaxYNQzjaWKvaSaaJLoVZGH/jc3MFL5IynH9mSMChi3x2E/fCQ2zHtHVFL4O\nF7Fm4Nm5Z7P3IOdpLmFURD0Lvb4UFyUzg3LUJtqIVXBvOgdRwYjNtkIzZQ9l\nCi96J9mOp2B9XlHDLpHPmhx1DfIwl7F6nCbM6FGl01ecSH77XsNcxw1GJVdk\nVq9wd9BDypE3fOwjvhNtC18vGXJtbQcGnnEmYXPlIBkjfsfnQijOF45Y2mZM\nm9SL7Ph4zsvEYVdsOPMr/qGEU8r0u7Bs9gfxExK3riqXy/fRwKQipLgrZ7oN\nq5l4v3LHDM4cBWe/ZCFAInr23GT8JsTNdm8rfoNvPhw0PO2M8IlURGpfWptI\nEXlckdmy74lXM809ZP698QhTnPz+PS1kBI4jlg4kLPZfWLfMNINqlxlWOyNd\ni8HeDWo03OEEAWlD6hv5d5ZKX+PhjmctBqmI9F1Tt2sqvq6egZ49Jyh9aTjm\ngHm5NYDyjresyfbbRPZi6F8rRLxEx9TKl+xKcxp2x4E4A1ur9rwttUlsuS4u\nIYhahThTu92bYwfeg+WePgU0zaCLvlLP7IEtLZipUdqswlG7gvK2r6XxX9yG\nq6D1\r\n=LAg7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbk0UyB6gs6c1UUGWxDhKbbIE9GJ4+WPAJvUQdNn12VQIgCLYdKxqagdRrhlWuLAe5jI6gUtNvfzOOFrTnKm7rPh4="}]},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.12_1603554427917_0.5195942623577374"},"_hasShrinkwrap":false},"3.0.0-dev.20201115":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"3.0.0-dev.20201115","main":"./index.js","typings":"./index.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","test":"node test"},"dependencies":{"@types/node":"^14.14.7"},"devDependencies":{"@types/cli":"^0.11.19","cli":"^1.0.1","source-map-support":"^0.5.19","ts-node":"^9.0.0","typedoc":"^0.19.0","typedoc-plugin-exclude-references":"1.0.0","typedoc-plugin-external-module-name":"^4.0.3","typescript":"^4.0.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std from \"tstl\";\r\n\r\nfunction main(): void\r\n{\r\n    const map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    map.emplace(1, \"First\");\r\n    map.emplace(4, \"Fourth\");\r\n    map.emplace(5, \"Fifth\");\r\n    map.set(9, \"Nineth\");\r\n\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second);\r\n\r\n    const it: std.TreeMap.Iterator<number, string> = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ASTL](https://github.com/samchon/astl) - C++ STL for AssemblyScript\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n    - [Mutex-Server](https://github.com/samchon/mutex-server) - Critical sections in the network level","readmeFilename":"README.md","gitHead":"d150e5c1c7b54b6ecc360c9f6fdc8dbb8da5a413","_id":"tstl@3.0.0-dev.20201115","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-kPDqD7zJN4JaJhnTwEbqc5ZHlcnAL8a8zeC+W6z0RQCvz84dLxXI2q4shWfVHHUs5f2UOQVud+TN4k3B+slrVw==","shasum":"088d20c8fe0184280061bbc9c3e0a935dbb94a15","tarball":"https://registry.npmjs.org/tstl/-/tstl-3.0.0-dev.20201115.tgz","fileCount":648,"unpackedSize":2018516,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfsSe5CRA9TVsSAnZWagAARCQP/0R8P5fpqd5l+wxNAdRC\nWaQAdimTLLQ2x6wRFNqOI91mFqhh1cXf129xOpch3kx6KtYMD3Mufr6kGq9S\nuLBvEpJPqu6E9njmqKa4kxhDCgXwVvsUk2XRvLSOuK2Xel83HRrPzzwEUL3u\nLxarcjTb9yDvtzw0SvsUkjlPH++Rhq+AFd7U849loE4TYa5whaH+Rqw1SOKB\nE0UPzl1hxR+WZA5lGv6HzRbyxNHM21DgkZgoU3SCclJTx66K5qfdLIqNl23L\nmYrFD1VRYpCF16Ix8JKOc/WoGlFJjU+eMZDCyoehrGUO7jKIa8iYlcieS6P4\nWs4xSOowq7tpzFekkGrbO3mM8mEzyFv6b1PjSKN1Jqj0PhwWF6rqEV0jSMFA\n5H5p9DsLb3ACfXTyYuZdit/EMBtwMdaw8HllePgqDAHFlBWEFeamE6Mwokmd\n+IfSRQVm9oWUQ3+6wH4pV35o9895o3hevFr4kAWJ5rxm+tY3Lrfs1TKtE2A1\ng2IW18Po317Ctzyxxr2blro6PEt1vobvrELmaWnVtdvSuf0TeMM2+grNlmlL\nEVkoSUzT1JC6suSgak+ae9lgyVIGFMXJ4mUsKufhsQB8SxplnhfAzolHQVS4\npkxOG2RL0c9zFiknYq3e8JSEzHnCuFXO4pUvUiZAFo42AeqqluGv9SV4p8ut\ntf4O\r\n=2wdf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC096onPgSnLxjZAS2RlFKx2LLpAoiPB6R2ihpwHfXQUgIgU3nb9/OOBylitz3zRKwVAAco68oLOcp8/OBq7A1JZ2g="}]},"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_3.0.0-dev.20201115_1605445560662_0.8208290861547791"},"_hasShrinkwrap":false},"3.0.0-dev.20201116":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"3.0.0-dev.20201116","main":"./index.js","typings":"./index.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run compile && npm run test","compile":"tsc","dev":"tsc --watch","test":"node test"},"dependencies":{"@types/node":"^14.14.7"},"devDependencies":{"@types/cli":"^0.11.19","cli":"^1.0.1","source-map-support":"^0.5.19","ts-node":"^9.0.0","typedoc":"^0.19.0","typedoc-plugin-exclude-references":"1.0.0","typedoc-plugin-external-module-name":"^4.0.3","typescript":"^4.0.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std from \"tstl\";\r\n\r\nfunction main(): void\r\n{\r\n    const map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    map.emplace(1, \"First\");\r\n    map.emplace(4, \"Fourth\");\r\n    map.emplace(5, \"Fifth\");\r\n    map.set(9, \"Nineth\");\r\n\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second);\r\n\r\n    const it: std.TreeMap.Iterator<number, string> = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ASTL](https://github.com/samchon/astl) - C++ STL for AssemblyScript\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n    - [Mutex-Server](https://github.com/samchon/mutex-server) - Critical sections in the network level","readmeFilename":"README.md","gitHead":"479e4ce32da38cb86a61050aa1b4a8299d4e227a","_id":"tstl@3.0.0-dev.20201116","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Z20uh+WE4DdCkL/yh+F8PYZ/FmtJMEghIy+81NCdygTqw0O7pnN9sc38wdjnZX8ulIeOkYja3U+D47YjI5O1EA==","shasum":"6a7c07c4ba5038e9e6cd00dba85c7bcfe26747d4","tarball":"https://registry.npmjs.org/tstl/-/tstl-3.0.0-dev.20201116.tgz","fileCount":434,"unpackedSize":1139263,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfsUMMCRA9TVsSAnZWagAAxkQQAJvmPBS+Pb+acaWTpaab\nwgZR+1tgBMxxWJ9Crub9yCWa96zTTU5CQMdqbR8FWhhglrxMsLjoCBZAL6nJ\nuAwVDXaaIEIu7T68e06dX+C3keNf7RRZlDbq32einrxEATwuMLzExWn22Bkr\n55QgZ/QRJot5Hcg97eZnejTWqGZg/Ch2yXaWvrNM/PFmalLcUmo4HDs6rfdP\nbyX6qSSghi+Z0wnhGWT9BLBpHpHH0pMSK3OS0QdSToMUyCDolItzKLrk/sqk\nbjusFDCrcDpY9+LiACn+hI4dssQCUG4bVW5R3dT/Ep6PB8ylj1EnqaqUU050\nznDbvL6EK6sKdj4E+aY8RNI5/sq5AU8+9c9+vUXE0QKifpo0z5rjgYqchqw2\n4pjwTjK4qqG9cq/dQkF0P/RO5ZLx+nz1D5f4SzzWus3TNv9HUeP1kPWCIder\nUJfRCKFyzfM09iLYJDSyhmLY76Iws/W5ucbamaLEwxejqSA2A9b1WbOAcAvG\n7HLo2+jvvSuIwvs2vJE7FkPvyhvft6iFF/XbNsyHZU/YNmEcIpFrJwUVgJxD\nmAPs2lCwGXi7ONqww7pwfFo6cMMBL1Hz5oVeMLK2A+iM/S7jpchf2AG8pF6h\nhoXMxMp2lwGTAlBIOfYYcMYgl63LXQe4mJfWzRnL6KMGDg55MIT+J2R8Sw/Y\nDUFg\r\n=2YTm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEaVkPxUOiwkP1yBBedIGE6d+FXzRCL1sBVQCfoGxkSMAiEAuVl7VVwg+mHegVR6m0qCaPspOPai26eOq2cnCaSMfHc="}]},"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_3.0.0-dev.20201116_1605452555608_0.23836293151827892"},"_hasShrinkwrap":false},"3.0.0-dev.20201227":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"3.0.0-dev.20201227","main":"./index.js","typings":"./index.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run compile && npm run test","compile":"tsc","dev":"tsc --watch --noEmit","test":"node test"},"dependencies":{"@types/node":"^14.14.7"},"devDependencies":{"@types/cli":"^0.11.19","cli":"^1.0.1","source-map-support":"^0.5.19","ts-node":"^9.0.0","typedoc":"^0.19.0","typedoc-plugin-exclude-references":"1.0.0","typedoc-plugin-external-module-name":"^4.0.3","typescript":"^4.0.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"readme":"# TypeScript Standard Template Library\r\n![Make STL Great Again](https://user-images.githubusercontent.com/13158709/59512339-799c6300-8ef3-11e9-961c-64f32432646f.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](http://tstl.dev/api/classes/std.vector.html)\r\n    - [Deque](http://tstl.dev/api/classes/std.deque.html)\r\n    - [List](http://tstl.dev/api/classes/std.list.html)\r\n    - [ForwardList](http://tstl.dev/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](http://tstl.dev/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](http://tstl.dev/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](http://tstl.dev/api/classes/std.treemultiset.html)\r\n      - [TreeMap](http://tstl.dev/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](http://tstl.dev/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](http://tstl.dev/api/classes/std.hashset.html)\r\n      - [HashMultiSet](http://tstl.dev/api/classes/std.hashmultiset.html)\r\n      - [HashMap](http://tstl.dev/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](http://tstl.dev/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](http://tstl.dev/api/classes/std.queue.html)\r\n      - [Stack](http://tstl.dev/api/classes/std.stack.html)\r\n      - [PriorityQueue](http://tstl.dev/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](http://tstl.dev/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](http://tstl.dev/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](http://tstl.dev/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](http://tstl.dev/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](http://tstl.dev/api/classes/std.exception.html)\r\n      - [LogicError](http://tstl.dev/api/classes/std.logicerror.html)\r\n      - [RuntimeError](http://tstl.dev/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](http://tstl.dev/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://tstl.dev/api/modules/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](http://tstl.dev/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](http://tstl.dev/api/classes/std.conditionvariable.html)\r\n    - [Mutex](http://tstl.dev/api/classes/std.mutex.html) & [TimedMutex](http://tstl.dev/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](http://tstl.dev/api/classes/std.sharedmutex.html) & [SharedTimeMutex](http://tstl.dev/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](http://tstl.dev/api/classes/std.semaphore.html)\r\n    - [Latch](http://tstl.dev/api/classes/std.latch.html)\r\n    - [Barrier](http://tstl.dev/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std from \"tstl\";\r\n\r\nfunction main(): void\r\n{\r\n    const map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    map.emplace(1, \"First\");\r\n    map.emplace(4, \"Fourth\");\r\n    map.emplace(5, \"Fifth\");\r\n    map.set(9, \"Nineth\");\r\n\r\n    for (let it = map.begin(); !it.equals(map.end()); it = it.next())\r\n        console.log(it.first, it.second);\r\n\r\n    const it: std.TreeMap.Iterator<number, string> = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](http://tstl.dev/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ASTL](https://github.com/samchon/astl) - C++ STL for AssemblyScript\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n    - [Mutex-Server](https://github.com/samchon/mutex-server) - Critical sections in the network level","readmeFilename":"README.md","gitHead":"479e4ce32da38cb86a61050aa1b4a8299d4e227a","_id":"tstl@3.0.0-dev.20201227","_nodeVersion":"15.2.1","_npmVersion":"7.0.8","dist":{"integrity":"sha512-ucdw2JjT0KasIPjlg77Xi5aDvOPYUzM4UelR13rI4ewJDEO8ofop1EQY/qh+u4sCDevXP8McsNY0rgm5zDyztg==","shasum":"36a1fd4d20bc2bb7d3ba1981a7ac3bcfea069cc3","tarball":"https://registry.npmjs.org/tstl/-/tstl-3.0.0-dev.20201227.tgz","fileCount":430,"unpackedSize":1130949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6fmVCRA9TVsSAnZWagAAr2oP+gM2in49fLp2KbeTxjAT\nzi6ekbgLNGhAYauIW3JSWY6aZnFBO32fcZYhoYx3wXqWqGtz4nqDpl6F7lEA\nN5mBuQh6zu/fzsc/t1jTTVdD5GmuzGU1FB8IdCfosxAZ5uK+orAJrgibIDxu\nNs+J5uqiO8+R61NKCjrFy8YbjnF9q9upKG2x7mVre2HJ6o0ynTlX1g4qbfKF\nw6PN1bTjB5sAbzBEExqhNJMYJCZ2p47g4pKcN6+OHB21sc8A6lLdjejPnOBQ\nmYUmnwyhuvYaY+syTvmM2qbOeagYlxVJZEvAJAA7M2mVLro5qXVAXEiwcLZh\n5thPTEVfhPSZY93NBm784TmY3R9xSXBDVVLgxLNhm7BUmzRw5LllVPeaURhK\nvsniV53e71X328skfIP++eDrmU6Hy/YA7bGS7XhhjKaxo/S8Ovu6LGFUPT0P\nLIQacbU/920vRBxzgLkRJVZcShInddnartrSdAzZ0SZYpA5/8skCPZclgJWz\n0AQ7eE62PREJn5wMIV/3lIm23SsfFGGo7gvj2xsnmriYLZhtRHiFFW8LMn/q\nJQ9+FFFJwN92nktMw4mhX8yCIyizr6EaXbYL+Ui0L4W2Dk2gxbGaBY2vozOt\n1mDCRc3Vy+JbbcOcWjVH1DXRAYwUi9eP10DPHbl5yjZ8wAu4jpSnC+rXGhda\nZWD9\r\n=87+s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDFGCvpO+rwcUUMUZOQpHzHOG/qjXj/rJcZSFxGpSXQvAiBkWo/UWfpKEYhUKb1ZieqfGyrlXpUK8MhD76Zb88TBpw=="}]},"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_3.0.0-dev.20201227_1609169300650_0.7695997504287306"},"_hasShrinkwrap":false},"2.4.13":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.13","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","source-map-support":"^0.5.19","ts-node":"^9.0.0","typedoc":"^0.19.0","typedoc-plugin-exclude-references":"1.0.0","typedoc-plugin-external-module-name":"^4.0.3","typescript":"^4.0.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"_id":"tstl@2.4.13","_nodeVersion":"15.2.1","_npmVersion":"7.0.8","dist":{"integrity":"sha512-yyjWeexkFjVk9l11cev3HeSJnnlxO2x88JZVvGPFqUx6ktDRQtxKbdcVjwxQ2ipCkXCHdxTfSIHWtnEx71BS9Q==","shasum":"407829efa93a53abf49faebeaa93478dd95439ad","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.13.tgz","fileCount":626,"unpackedSize":1358718,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf+vpvCRA9TVsSAnZWagAAleEP/0XQWFSraSO8yLcsilrm\nG01WYx3VwTr6AhDXTluTVMt4nuJVwkgknlpe1FczCdcxZv/N7SLbHXVkV4kx\nHDIOYTpcx5i7xilQMxl4rfbHALk0nTdiyqhQ1qGHeVnZrTQnNy4jTsNBJGgK\nhIoNtX7tpPXp1dtHTiLNbL2UIRuwCD4zKNUEoxcwgA0CMNMBtNhFk+B/9Ty6\n4N0IV/VeaZmWFLLcc1qTD9jfaBzGL5acG3MBxB1VsWO683JATWBQqs3APYSQ\nJuVU4HSesL28zFlEANgjrGorzUl1ydS+SoBq+fRi0/Wjq8GbWHb3V9vg+N7L\nUnLfs5czkcZ/NlaeC2e9pYo9m03Ktk8T29sGVQ1sFmSoHIo6lHfhrc0QPvKO\nuvncagrEQSlzOIVk2y8Tihx7udphjeIC+nUd/Nhn7lfH8Oqh3HpyaLt0rhCa\naEl3Oru4UcodQxk7+oDsNSxYqZ9SkxZpqLsPxAbrlVlc24EG6qTxe7OyidYb\nWJBtJaUslauZOrUgoLnhzlkmXOb2TeNWPWoY7kNASqJeNrGafgoR2K8eNEF1\n41MbUYQAZuxodGAjt1Jg/kgCSG2Vkn2605vEdXlDY6W81+a0Xla15+1ZGxNu\nOTFwDWGJ5xgxrD0q+qBmQOW1PxVzL7DBaIZfDioDwsifp8NXlpExgGbwAN01\nfXBk\r\n=CEYV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDQoWamEKiQ91X9YN/OZqF1NdJgRC4lE4rcETlZeMiFZAiEA+Fi2rHNrkWMrsU0fEKELmaGZZtpxrJGPpmPFDQFQvcY="}]},"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.13_1610283631006_0.6244067040199788"},"_hasShrinkwrap":false},"2.4.14":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.14","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","source-map-support":"^0.5.19","ts-node":"^9.0.0","typedoc":"^0.19.0","typedoc-plugin-exclude-references":"1.0.0","typedoc-plugin-external-module-name":"^4.0.3","typescript":"^4.0.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"_id":"tstl@2.4.14","_nodeVersion":"15.2.1","_npmVersion":"7.0.8","dist":{"integrity":"sha512-HEYODVJzjKdeHItqjKg76LYuNB3haPKXtcmaT11MQxSJWcMLpYHegLPbR1/nOJ8982n8ed5G8DP8I/oWsQV5/Q==","shasum":"8a972a51403dbaaeceeb986311f1c3c315752ae6","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.14.tgz","fileCount":626,"unpackedSize":1358759,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf+vvkCRA9TVsSAnZWagAAcXIP/0owy7tH9+Flep9akkrA\nqdVrGUGfcuOS57mb9UHk2DjjeDpXESUObsHdCjdAvMAJh4pbhshF5pRkx1gD\n/Zx/rJberLlaLbRYZm3VzhlcdSx3lwv5ZtRxWkzC0VZe3sLDBhS2tglegVcV\noMjuvnu93SdaTr+xLgsWL05CRGs9pty2IHNkn+CfHGWAx89cE9CmQhw0RvNo\nRVIs5M4kymA2osRFi7n2KPdiGrdREnihXR0wjLc7BPkcHhFaCU2FjI0RxEjd\nLYBLKSUISVWwr5R80VZ8gXFoWV4x+TTe2dwzUGdblNAT4UF/vqOMp2Qxj9Yf\nJzP5UAbJqYww2RRjK17Naxg+EoTqMkwK8oQQ6/Ln0WqBCE3v9cRTqHxVdIj/\ndyLwPKRUENilBFS0tF7ma6kxeLErllh/uR3VwPtRVxc4OiGRk6ml8FrAiRxp\nd1xDsXETIhIxKl1kLi2u+riy6JK3YwSbpv8iTAyhPvUtQf6PvSdqw3dFg1be\n+DhuJABQLAoR23tsimNucNOVMPb/BLKl1m1o/hW+2gG1dWd2UwChZ9NWj2ht\n5NGBC3u4qljetp0c1PTVgH/za+6tD+FuS1KBohCW+h/tLYHxK6SYGH4KMB5x\n5A6VokpZtSu78GAMktZDvXwAfOqSbXUOii6FuFyIsldIiG0Sjagz4bTxD3do\nY6NK\r\n=7hRE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEW4FmIOgb7e+Fxl/sb8OpXSzkj9WWvHHBu7omO/a84fAiEAx/1C3gcQBp0fNyV9/D2GT8dugNwy4Igs/0HB9gF5ifQ="}]},"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.14_1610284003490_0.46163642278838735"},"_hasShrinkwrap":false},"2.4.15":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.15","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","source-map-support":"^0.5.19","ts-node":"^9.0.0","typedoc":"^0.19.0","typedoc-plugin-exclude-references":"1.0.0","typedoc-plugin-external-module-name":"^4.0.3","typescript":"^4.0.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","Singleton","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"gitHead":"85cc0039d80726dcdfc2a1eb0f1e735a86084f76","_id":"tstl@2.4.15","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Ptffu0u5w2Q2b6jdV28ca2ZDkJMd1eVHRVlSL9rps9Daoz6jEeKNZfsLdAJztG1FZ5MTfold4udlTEGCYtgfSA==","shasum":"3904a4bbc3b39ee29a68f159abaab8a47fa4cfaf","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.15.tgz","fileCount":1039,"unpackedSize":2568491,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgStheCRA9TVsSAnZWagAA0i0QAJUCXjk3Buz3R8q4b1hj\n2qK6qsopX+fOKQ2rQNoj8zA/0KE/gfQhxt9NH3PrTpbLb21ZBCMkTsNWtgLj\nRaMRIVvCDdJyvuDEfCu1fL3AVLmKKoinG/LFEOIjHFTSFW3FD3hnOJcM7jx6\nzjjZeQU6wyvR9Ex8J30FqLS9FaCQuRkCCX+IECjK0HO+jyKzrB7CCQ/mJkdO\ny7Oo+mf90p4dvpzYVlzJ+El8WbBywUYqWIcLh+Jk9tbTL+42nbYk4tLG3YXu\n8a36NZtBDj+1o8Y3IIPPxu6m5xR9fplD84tQLZ3RXg3G6zovyes2CXE1ICVu\nomaMzcXj1XbbII0UqseFSqjt1NqJnILFqp6ZNNVpf/wDPhJ61IMHzJUdbNvX\nW0onn+YyLL63kMXrsvDTl+n2vhKQzDZJuzOg6C9eVYuYbnaCsFnaWPGWfx3c\nSPHqzEaJ9gLMmz0wT6gQmNTzgfR9yI9Kz0P9njdEjjGFHAQi0TpLZjpH/CBi\nIGv1kzr6g0CMsK7sWLUA4IC1tgpHkYbt/Z5Lx1NrF/OKP6TtCN9Unk6GO9qR\npCIfM0sez43mnPbx6+c8/gcO5xoJ/bNqPFUW2M5aOiINc+n/Jpc2Q0s19RP+\nr9yTEDxioiAFuwxUXcbMr1UNj2Fatf5xtGrz+bqzkR5/z191cEdyxk7ReqoL\nsNeU\r\n=LwRj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjXYXwZVfDxVv2FzL52BX50vSRQmUC4lLxgrG0MzXnmAIhAISwuwrOlEf3ysyqtVQr1g4Swy+i967IIC1KEWqfIT0K"}]},"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.15_1615517789645_0.4651576366421364"},"_hasShrinkwrap":false},"2.4.16":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.16","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","source-map-support":"^0.5.19","ts-node":"^9.0.0","typedoc":"^0.19.0","typedoc-plugin-exclude-references":"1.0.0","typedoc-plugin-external-module-name":"^4.0.3","typescript":"^4.0.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","Singleton","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"_id":"tstl@2.4.16","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-eoHb9w5jaMqlLOLAR1rWlJ4hHoqmfJd/HKFPOIJrzH+AVocBKXKgGIDBWRvV4Qsjr6rNgGFpEZgqtTbeXnO8Mg==","shasum":"4aa96f3ea38bcebbb7cbfdb8766a2ace1799d78f","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.16.tgz","fileCount":626,"unpackedSize":1343477,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgStlMCRA9TVsSAnZWagAAd0IP/RmiJOXIn+k+CeOkRUrR\nfIh5gFTkIwS1eW+DMnKAwk0orHhmkVw36BRhqPOI9FfCHVKDUMdhimTEeMYc\nMVeH86MztqytQZZo3GtjrMdUEEgDGHDs1kXdyS7e/XQfkaVq6oiYazMqtC+Q\nGxOpUnIk69C74WgN1HNHbifx21EVfmXOj3GxJbhtBqWvSwnzIB3Tq4/30osH\nqaUh9kqAhWkcYSSeMmfm+8PN39xBjQ2jzjhm3bzJaZyTiURkUXJTbx2n8ae5\ndWwqqZWfB3495zp4A28FIrX+YQgsY8B/PWHrwu53dn+b6vNful6hubqaiVCG\npXVOqZijgvP2HlQkB/+CZWY/K+4MMhM3f0SkmzHlYAE9Fz6A42w3PkNrrPb1\nTaCsaAOsPx9GjWi0+UWNMEluCc+xLHHX5fRZoHXAI8+vQZVMv5KMNWLVt9ZK\nGNkK1NZR0rlyduES8AJ6+k30DB1G8dRuuUNRj5s14NaNHM1jlbpHo1wQco8Q\nguDLa7SDgDxuyHCPbyyAz5lGNok8muTHzPFMzcMh/EWYiXLAGkLeyKboO/LQ\nYX8jn4nJenGbxE0IE+YRm/RFuTIOOvd3IgIechsoy7Bf3StxkKXPnG0KYA8s\n7ppHvZC2tdmTPxoCQzLQJdFkS/SCyijgEt93mnJrCGsc14R4V4+qp8zUEldu\nntjy\r\n=AUri\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE/lI6xBpcuoWoND1VDMJv0iQB2P2ImSnVdz0RWPb26cAiEAgr84nfzoPAzSFt42ifphO9x+Ipb4LNO1PKNTCXqoqW4="}]},"_npmUser":{"name":"samchon","email":"samchon@samchon.org"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon@samchon.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.16_1615518027777_0.6647141485273849"},"_hasShrinkwrap":false},"2.4.17":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.17","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","source-map-support":"^0.5.19","ts-node":"^9.0.0","typedoc":"^0.19.0","typedoc-plugin-exclude-references":"1.0.0","typedoc-plugin-external-module-name":"^4.0.3","typescript":"^4.0.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"_id":"tstl@2.4.17","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-pQnw+ddul0+SBlx/6GTlmCOTd1Gv7rPSjONY97CBfeMh4u+KXoCewUAEDplmBIRsHKc/brvS+o6eBK8q7nGYPg==","shasum":"7f5bcf8bb37178b324e6d5f91f31b5f0d3e641fb","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.17.tgz","fileCount":626,"unpackedSize":1344132,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgm1xhCRA9TVsSAnZWagAAAqgP/jFbDWnIqmHfjQxP52mm\nFfXjQQSMrlg/8hl7XF9CaqRrD9fJqolKxBdBbqrzXfhdpNU3e53DEL9DjIeC\ndfdbGYSlpg4g8ZfA4fXZ3G69HUkwntvuCC1s5tvc2EF8UT5aG2PwFYyHKPRc\nVgR/hR5VZcje1dFFQCypdLjYs5HhlwaKdy41flkGRNLITlbqaM+9TLqI6DoZ\nd4ajf/Dvh7UQS0V5DKh4XG75gSjHuC7b1X+XjPO1IzsL30T2UCJXSThW8HM9\nlfvvh31+FvRcWjmD7cpuzk8bZOpTcDkfB9a0a5EZO8l57K2AMEA9pS55261/\n9qkfgPr46tcJ+Rq3fbc3xbiMDAkKyl3vhzG6/qT3IVtxTFZ7PQbN2ErqOLZm\nQiuISQB+MGfULowmuoW4Jj/rdLxBh/S9tG6/Sf6cEwYOoS5YLIYyiz2eCaDw\n2FwkaeMx0E+tlV4VbO+EkrSfOfpZ8fOzUkzMwAPwlQVrTRRJqMcA5wx0l116\njUoJ2f1dptqnYWJiXbd4bxkRHATZ8G4R62mrST8pK/T7vgapn+D+cEUcR5bj\nOonwamIGVJuERiP7qCovBChta5wShcMqm+mSPhnBTJXofvbnVCHrCnZZRZwA\nNU4KekcDNlOBHYNWPRlJDSIQLNoNSaS1I1Byf5d937cXjWuqixiRRS61esz8\nJfhC\r\n=TH86\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5X6ORFqshExA/hrtq4CGS9CPzCrl6Llu6TCl9JYMPVAIhALo91dAVPxBGmwx4XE3HdkPoR8uMrOBfOIV9AtQwgzTS"}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.17_1620794464411_0.2789064657241265"},"_hasShrinkwrap":false},"2.4.19":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.19","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","source-map-support":"^0.5.19","ts-node":"^9.0.0","typedoc":"^0.19.0","typedoc-plugin-exclude-references":"1.0.0","typedoc-plugin-external-module-name":"^4.0.3","typescript":"^4.0.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"_id":"tstl@2.4.19","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-YqH4DyQDJZCZTyjbkonIppwq8x0PDBeGDqBIzuh0QmsqmyXUefNJcPKAEgbsOUMHX6NlWxzA6H4M2qdwJYD/wQ==","shasum":"45cc140b8e2318871b5769fb44f0abbb80a53a0f","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.19.tgz","fileCount":626,"unpackedSize":1346826,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgm4kcCRA9TVsSAnZWagAADc4P/2U+Z4kgcZ3cJmP4te8p\nS38tcTcIlaiCvwDj5ouhrnyhAHIorghGR+wIi1vijLEkIz9VmYZJm9DchD6x\nApBlr6kDhd0MP2wSRem11anSuqScy+45zUlRd9NnaBgNYDALUYk4h7ie8ItF\nCrqfmMEvFcb0Z3/UR3IyIed3mJgYbEmcPytizEPZ+T9Prt/xDJJA9pFv+fUe\n8kuwIW3AL8B1G4yjhESYsKTSbbzTncdK6o+GuWX22WxZ+QEUnB8tGyXmBACK\nJTzr0fd3sI2nFVsS23Q0DfweEpWnGgy8mm49IFWthPx10RXDRFqK6CywInTX\nnh/jjLqASvRraMaEcJtfYdaIHfztRxC5WdeSaqJQH2cqDdfi49FznADpB0AG\n8FxLkx1sqnxbbLlICJNkcmBaZKLtOey6GsyIxEwe3KQoPk58wWBcR6Ds+1WS\nDqZsZuaTcjKo4tHe0uQfXUmtZgyZQTfjHA2rR9z6Js5rHABoB4+MBE2ZEnPF\nZBtUPs6NZHUUBbDkfd1dRTarKrYFTriYqFL5dEKRmSp56UzPq4sXSV0YFPnP\nWKkthjb6Qf+GgFerB+Y43GW7iCEvkxqqH3t4RQmHcJmNevLg6jCU4V0dzaW7\nZaZmPhnX+G1+cE/s3yDKNmC/hxjXSztLjmDLW7l1MEUP/TKgjsw6IJjgriJl\nQNLe\r\n=/hqe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDwqZ/czCKyrZ4UkU3CLVqMHzmxjo0F5F+4swTidd8E6wIhAJaZIx45FFjrAuMFdVJBzd3XRLwVuI4fXvLLjnJrpVE3"}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.19_1620805915533_0.12363905179853862"},"_hasShrinkwrap":false},"2.4.20":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.20","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","source-map-support":"^0.5.19","ts-node":"^9.0.0","typedoc":"^0.19.0","typedoc-plugin-exclude-references":"1.0.0","typedoc-plugin-external-module-name":"^4.0.3","typescript":"^4.0.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"_id":"tstl@2.4.20","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Zgv5VragVVIrhK9q8kgej7z2hENL9CytgxYdgJr6TI6o8sS6RFa/6+AMOK8qRD81Pz1kh+uxZbrJKDSPk0yy4Q==","shasum":"5c88cdf7eb11a3ac800041bf1b1b7f94ebac23b5","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.20.tgz","fileCount":626,"unpackedSize":1346826,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgm495CRA9TVsSAnZWagAAg8AP/R5MB/831xUgbWH3KVZm\niE+AgCE2W7RSDgWOOOuTJHmsHi4RoQXOZKIqsetS3yFB48kMkauv3mNwbGlH\nBGbWnZi+O1DEbAv2VJhX/TfgI+/ZG4w3LmBT8QFNoA+UZiGDrZa0JV3rMy5q\n7eopQB9nzlVVhTDPvp//LxNtdeysgShfU7uYop//QMZx1iFWgKYi0zaFUvPs\nHyE8eKaFl7KM74KHgaw2KStXc7tNrK9vBCeAN2PxOQyA3w7N99MKj6E5ycIZ\n4qL6EYChTYRJwwPm4eIKKJ4xhNhL1l3FV/xJQ+XSexmyzMfvF4WYwtDFpTq7\nynITmB+YGMGZgLAqz+LEe19NxauvkbBbp4kLVqiAwnbE2EUt80JL1lO0CkFL\n+HJAzYaSzuOV+iRmK9dTGrtpAbCwH4JuUuVvMJ+s8x2LSEDr7wGUWH6gYehU\nPTB+rClBWpoKaq097koz7HpD1dw1A4KtneQ1zYNGvElPq6VROkCAexKNUa/9\nkmTfJfUi4xefeCBfY3l6UoWMv6T4qb+/5COjFgpSk5RrMr+iKY+tkEm1kLm7\nH9wff+frZgnjATZB7iXHPBLF1sZjZ4eTeCcP3vsPPKRgR4ilpfYr/KvEDYKi\nY6Vmt6TkFT+BU79n61VI5FK59034BoNOJioIraarWjCEFFTsWcdg7ZAHoFcu\ncoQy\r\n=wjeX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDi7WNo4Qi1eq02qWcN1rgBuKSovT/fgpKml2p3BICtyAIhALslu6TT1D44vrJ5ZumkwHjUoCSgn9LRi6Ih0K5LZuQG"}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.20_1620807545393_0.3762546313098747"},"_hasShrinkwrap":false},"2.4.21":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.21","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","source-map-support":"^0.5.19","ts-node":"^9.0.0","typedoc":"^0.19.0","typedoc-plugin-exclude-references":"1.0.0","typedoc-plugin-external-module-name":"^4.0.3","typescript":"^4.0.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"_id":"tstl@2.4.21","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-zGqMXW9KOqKD9RBw7eDTaFr2SCiblProj7qmEvJY04S9y9O//5xooWJ8qHeimu4QRcDyDc+7yZBd8oaUpMfYQg==","shasum":"a26dcbe6f21713bd54527ca42d953e2baeda5d8a","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.21.tgz","fileCount":626,"unpackedSize":1348018,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgohHACRA9TVsSAnZWagAAgcEQAKIbQbaoJDFtLodcVuqF\n6UInf8UpS2mGU07YMHbfP084fcLLTqTNhUd1hb+xBCLePDJw4VsO4e5mIweR\nFe4ml49mEjUJ9KyWm9xB5fNYmIvADhi4NycEnDocWhWEGhB/qLvI0mk5nKSg\nOG9Uq64K4LCeum27LJqLTfsh8T8j64xk09eGZpp8fDbCORmU+dLYvcIeoeRO\nL2TK4Ii/8etmqA0wfJRpx2ozh4rITVQVCWQfwfZEPCmbVFXO7yOpKQyCwZtf\nDNWTlcUj8gHraRnObBJDt+sq9uT+LJd/3WMoEu4VKVsarBxMvx5c55iMcRuO\nmUZFkSl1Ah51ALoJ3+u0L/MX9CDlpqoi8FCnDhJ/1WupUKPv8zeUufK++v+G\neWSvTqnsQhlnkxT2yELNtFJW2h25JMSQfB/NaGll3CMOVG8uDwMBEUc4ECQh\n+7sCVqti8AzLEKqSf1dlxWD5laKyZKvL23A9FHSdkQGMF+/4//K0doJ25hex\n6bAAMRX4XB4csDe5DwTgnvNqKRfL0dKxPLeEW+EXIxs0SSLjPZMuzgLDiIn6\npckxsxVSsqlJJvdW5f4AtsIo3p3riP10VqMQ39JYjszAzqpM9Hyj67f5yrN1\nPlsC8IxHYJLd6JJSAMWS1tybmuwqtooEGZnx+QP0oi3t5NxjRIwL+PrsFTiQ\nzgC9\r\n=vic3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAESSAr/GagHzCwx/9xKQBjjBg40yDjc1lkAJeK7pI+0AiEAozr3JUwHTJkhelK6oKrJ6dIkPO5Qy9poFSadbCDYmR4="}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.21_1621234111491_0.9192730463318699"},"_hasShrinkwrap":false},"2.4.22":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.4.22","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","source-map-support":"^0.5.19","ts-node":"^9.0.0","typedoc":"^0.19.0","typedoc-plugin-exclude-references":"1.0.0","typedoc-plugin-external-module-name":"^4.0.3","typescript":"^4.0.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"_id":"tstl@2.4.22","_nodeVersion":"16.5.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-U6CYG6JisUg2buDZgr1CZJu3DS1bLXcpm/w2LMtUI65tSS81Dw3ufaQl9lqCuYpCIjsiFj4DKA9orDunDQbkfw==","shasum":"fa7b5156e2848237b03e4488784b09a13291e259","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.4.22.tgz","fileCount":626,"unpackedSize":1366403,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJ685CRA9TVsSAnZWagAAhZIP/R1Ec2luPlT3eB7JhLYL\nRk8YpVNcR3wzONaNPT1h/ptTR0wQoUlw++FUUfEPdyzMS2efkEI9S4GAkLnD\nOt/nZR/PeV3yy/FAai10vwG2NXmiqY58Dnh1NSU5tPp5ACW6b2dIb3FPKYLg\nJhZiCTeY/XvFtfbPAUVQmEYSVLwLSvXL0SJx48p8RaJObdM7ABqHWFT+/4FI\nG/kop8dy7y3qNu1HzOdsbmIhzGyecmAONt1yHh396AEz71JOmk+cT13Ngg1k\nc+CKRnGrQXHjPStk9+AIGfNdW1zTfJvdrUFy8KjSDppx1jmQrC8kjCuz8zmp\nLJarFUgeJ7+l58TDccQX0KKkh5BNbuTA1awDYi54B0N9yuYhLAcd0Ra6ZFgs\nKdW3HtWhMnngzmzIagKS1gDid1e3UxZrnhEj7YabDpBpnLXfre4B4Q9oiJqt\njOPkgNe4iUsJ0GbFD/UjwdizidhIO423t3AfIsniddie6Wnj17SSNfGgROBm\nu2FfyMpe9rUgCJU358CZ9wUr4RhonSRZp2bWUsjvRtibMuDRxRZNivEJUGmc\nJHEctGoGr9LO+FK6IBBEjIodgAS5im/nTWxgQQufc22+gOThe9kuQCpnRUlK\nnZA251GcpHnjVMKO+S4AUsmqxyYNL7Qw+YEajq+b8oa5mLIYe2MMKs8JgKJs\nm2Qq\r\n=O7+v\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAjHrlo1jEF8oSQ4X7+rlt+6/cWz/9xGXgBzFa/73+yAAiEAtB7cH7MTvfoMcMbYkX+MF3/QPB94/RkGcLn2dyt4aT0="}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.4.22_1629990712796_0.430862280123391"},"_hasShrinkwrap":false},"2.5.0":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.5.0","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","rimraf":"^3.0.2","source-map-support":"^0.5.19","ts-node":"^9.0.0","typedoc":"^0.19.0","typedoc-plugin-exclude-references":"1.0.0","typedoc-plugin-external-module-name":"^4.0.3","typescript":"^4.0.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"_id":"tstl@2.5.0","_nodeVersion":"16.5.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-6V4TUiae5WVjj4dfWEUZC97A7AURgBoJE63J4pFx/fmx3PTlY01abcPo3s5gNXO1McLJa6w1oRCEVimIaZGWrA==","shasum":"125571b08821173747238fd434cd294bf0c9dbcb","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.0.tgz","fileCount":635,"unpackedSize":1377593,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhPJpVCRA9TVsSAnZWagAAYZIQAIdlVT5MfN90HORWgtup\nXSjafeUcquo2Wpxzry6loyWg9RZEMEBZFqtYEqG6nPSRnVB7xpuYJvFKugrK\nwfY8a/On0Eb8YnUcXMLYYoWlxvVjNETei6anqo2XfNMPiI+vP8mI0xmDXnVh\nN9F6l1TGLdBcB8we5mGLU32wvwosrv8SqzVyhciGDpioqMILnx0Won7L84qi\nH8YSV8Kkl2esdZjwO+/DFvnC1n9WprI6lvt8uGcjBCiLPcd1ehAf7rUBdU4R\no+zjl6jPFTYO5koF0oRR9Y5VaXxWhkNJhSouSjGjXxeiINGHeD8gZ05kxm3N\nsrnq60K/NYRO9UzzsHFf6gsgY32ks5XjSt/MhUSSgXyef1TzRYayTuCUGJkb\nn8KXfDInbkP8ymtgD29LeMrRui3BMgwJ90TTuuMAONjSXrwxd9CRaoYJCGd4\n8OOhPNlNPxet5eQKiFyuo+S7hi5hEKwUwfBEdCJZYBK+faFDF1zSsByRbJ4Q\ngBNgmcRLa/EEfTSwOzvdfnCEIQDQQ1pzQ9bvDRUFpk7FnhddM/HHosD/hFY4\nAA81Hx51aFIYdU5dqYaFlC9YCb2uunlcGth3ZI3WpHQ7Bkv5qaKi6AkdT6SY\nA19ZZ2ihcMm1FqjFJC4aophTyMURlWl5oG4ze3Y0WjxqZqmt+qqM6SIHOsk+\nf6Ou\r\n=9Uqs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2uWGmT7oLZA2WjetNrNBQ8Rp5SPMe+2MYvAb166wVLwIhANBKTNXsylxQ6I6xtoC81c7qPvnIOxinAh9kr/0Ri0V+"}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.0_1631361621480_0.30380165590110453"},"_hasShrinkwrap":false},"2.5.1":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon@samchon.org","url":"http://samchon.org"},"version":"2.5.1","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","rimraf":"^3.0.2","source-map-support":"^0.5.19","ts-node":"^9.0.0","typedoc":"^0.19.0","typedoc-plugin-exclude-references":"1.0.0","typedoc-plugin-external-module-name":"^4.0.3","typescript":"^4.0.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock"],"gitHead":"c4f21effb7c6c5a54100d74432ff915969eb7755","_id":"tstl@2.5.1","_nodeVersion":"16.10.0","_npmVersion":"7.24.0","dist":{"integrity":"sha512-z8kNDok/wvYsU6aaPvTCzwHiKKPVQv8XSO/Dd033s4nvEbowkjbXaiqQWV+5fhOexKjKKShWh1HOWoZ23MpuPw==","shasum":"51679b3901299b33ea104aaf9ade425d82a3d52e","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.1.tgz","fileCount":635,"unpackedSize":1377593,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhsL83CRA9TVsSAnZWagAAJIEP/RdgOe3T63LmWn4Tw6xs\nMBNGuiux3/xGcdmwqps38ijSCVVgsMXYwoykNjqAVSLIut433r1OvSbbbQVv\noQcVQidHrUR9xkNQqZb+UvHERiPwVNH+OZTvdG/ateb4cWf9Q4/xRLN1li6e\nS45qhunxHZdYs/jPZ8HLJJrGm/pYfNHK1qC2sLotPrxgpLVvJX5P0QHVUNJ5\n/DaIBs86KtRqHGApaTIT4Mws9u0l3W+NeoerWm5P3GAIJ/GFUSBL/hV88z+D\nYg6RtE6asBr1+u9mrFWyyADxQpU9eC6ABkp+u/w+CEoyhVUnXpnAJrm0XzQX\nn/9V5DS4dFOfp7e1SE7rTUsdaKXIVtZC0O9DtVUHumTqSiRKULkwnmGjwjl4\nv/tbAqsYSzD2NSO9Yp+QUL/F3xEPQRydT0uvGdApdwhlUVh+rfc4fLXYaHv0\nxUSVz2KliV4QTg6yRAe7vyzWjnYLXHcnCpRIjmBnh38fwoHgqfKXow/OLTSA\ne6KqfZGc+JoOAKmfJJjM5xcIrx42KnNbvwqGrJSAUI2J3/+K42COZxp6srqz\nVEFRrduNzyXvTpRJyM9Dz8Q/uW8M8PNBOJjF4VBI7qtcv+UbHysFfwNvRE06\nzl/QDtzrmHnWHeiChhI9nmHzK6lacy8kqASpnYoWQ2GjofbImcbzs4WMIZOd\nzYJW\r\n=zhzn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD16jpCL2LsxUu4NeEg/gk1mrn4mE1JceMYTFkAUuz/xgIhAPSbHWtv2PK9gynSj6QY4OyWQMUq8KkRpM1PpAqq6pGY"}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.1_1638973239301_0.4878769307713686"},"_hasShrinkwrap":false},"2.5.2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.2","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","rimraf":"^3.0.2","source-map-support":"^0.5.19","ts-node":"^9.0.0","typedoc":"^0.19.0","typedoc-plugin-exclude-references":"1.0.0","typedoc-plugin-external-module-name":"^4.0.3","typescript":"^4.0.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"gitHead":"87c4cb708b097fe6b585ed4e093bf95728ca210c","_id":"tstl@2.5.2","_nodeVersion":"16.10.0","_npmVersion":"7.24.0","dist":{"integrity":"sha512-wkbvyG7qtShil9AE0asyOzHuDm3SLEKElsYACJw1+tmocWVI5vbW+ti9bV5XqAqjwNw6/YWCVzGKwazvhLYWdQ==","shasum":"655ae93192e4c18ac74495cea2bf862159775cd9","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.2.tgz","fileCount":635,"unpackedSize":1378187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhzxsoCRA9TVsSAnZWagAAFoEP/2EtSe2bfnvLbJZ9k3m4\nGWiBeIxYGfYjhahFaBN012rD7uVYiHnIi6p+XLQHGVwNlsoCc7gkZfPR+CG5\nV6/JZiUT8dyS8NrehjGtXGh5U2AYf0YrO4STxj5rBiHWc21sDh5ueIbOclh3\nkhNdyu7Y5O2UzByAIFsHPhEUT6Jj1IfBifURYFiQGeZz4MFvitrnPz73LQnq\nQ5wjxyapIofgWTiqukuIyfau/fVZqbfsVsE6LFG8JXtYozgMlWexa/PV9gnY\ns1LkdnOz8ejuUx5BWNC1smhN+AUlPtzwst/6zVstNg28qazOSWsbl8WuOMHe\nZOf4lD80vVvDqTsLcQJf+nBx9NndWj7FEnRLQLRh/iXzCfgcpJLVZOlQKIgG\nRa4P7DBi1jfVfBS7NMIY9LCsR01/UBL/JBqaKcyG8PkGk7XKqH0sTltJcngn\n/NR8h3WTCF5KBGUB+vFGlmn5fYRcGpzIAQnmtY0bPbGUOtAZroY4yKGuT1bz\ngKMKRz/pTxVKh3vVIIXRof5IUl9epqkI+JOgwOYTarRHyWBF7K0L6jJNbjnx\nVq4usaLQaxGO87b3q8kyBwWsbum6MyCn+Ec5P3lNxwyxDEjie/xMMok9VnpI\nOh8cJaMDvryb/4V0Fvc9MhaYiFNGVTEFQOoyjzjdXMr5jVW1/qZ1Hrit+5dG\nf/G1\r\n=qDaF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJN2NmJ66zrVq8iw0WewWfIZOy7svZ6W2uxygM+iZrcAIhAPOmxmSNOzjPDoMULHYfK7g6S9+PQiaAtrXbB703w70x"}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.2_1640962856575_0.08731249632965765"},"_hasShrinkwrap":false},"2.5.3":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.3","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","rimraf":"^3.0.2","source-map-support":"^0.5.19","ts-node":"^9.0.0","typedoc":"^0.19.0","typedoc-plugin-exclude-references":"1.0.0","typedoc-plugin-external-module-name":"^4.0.3","typescript":"^4.0.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"gitHead":"a3ccd80fbf5eb15e2717b99f4bc655287a7d09a3","_id":"tstl@2.5.3","_nodeVersion":"16.13.2","_npmVersion":"8.1.2","dist":{"integrity":"sha512-tPQwpwyVByCdeCNHmbiO9uDoGjZXdUsm5e8/yxbXeyMarB0xjMCx94rAOOpytCPRmXnwgM16JZIndfDsWOQvNQ==","shasum":"775478dc1443205e5e2c79b7136b2e0eef62597d","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.3.tgz","fileCount":641,"unpackedSize":1387635,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiLLP0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrxYxAAhQBtQnhSB5JTYmJeXYxXTrG7TL70dAmSlqRjNUPeArnuQCBf\r\nFDJIOxizIy6LwoL9YGgCaPn3whAu4xDwijtTuNjsFcHnM8xwv/jzWjYEgOZu\r\n/OxBKcPVXeVyIhnNItcezrLlfzKOh5No71DxUku9KxxAMteErg8QkAJmzaJM\r\nMhfYU72ulg034kFnKRG3OG9rlJBXYCkCD1xYF9mfgbVEujz5pQ7p/HxoIhHx\r\n4aOZP1JYBc5X8wKezurLpp/7oC/tEX0y2hJmNEjU8r0gMAFFRRMZa5qmZa8Y\r\nf0ccEUByXZQ9BmcCdqEx70nYvDaG36XghdxWrKidFCI/fKE0S0pN2EqNUIbc\r\nFDgCIVlu3fxal1qZ0/pUH/KPviBJYWKMO6ANusMtZ2ou5izdPjbh+Kvl7Kv5\r\nEwmvzxYBPOhgLud/fXz3CPv4bzVq9IB3ncE4yL33J5hbHZYFveti0USKiZ/e\r\nA1HJ24OtUZfncRXuoQ1vstsQAcGt9OgV5g2rgJLJOP7xo3auAgbs8JX+Rr2J\r\nP24qCCsPVDF0NVHSBVOFecpSyapjq74HFt+HHNMO3DdfL2Q0sHL2pBWijCvC\r\nP1mcssWrexUT1JZ0WzKyWgXZ/B6LrUsNHsyMyBbs+YYezWVpQ0qLY0qMiMCA\r\nseMIFCphKoSJ9lZySf2xMX64YSEZm3U1gq0=\r\n=D/PM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTZwQBgoMQBzrNak0qUWMucRik+qgf/iNhyY6IJflWPQIgfXTNb3OsqZt0aCjmie6xmvGs95+OR6ae3LyfWg1z71U="}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.3_1647096820654_0.747558638012298"},"_hasShrinkwrap":false},"2.5.4":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.4","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","rimraf":"^3.0.2","source-map-support":"^0.5.21","ts-node":"^10.7.0","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"gitHead":"78bfeac511684afac764f892d7cb003e7349e7b6","_id":"tstl@2.5.4","_nodeVersion":"16.13.2","_npmVersion":"8.1.2","dist":{"integrity":"sha512-qmEbX/yz3defXFbFBjzBhIsJwm8rPniFRr0sXavkfghQ0cL6Bh3eEIyzLJWNGobzEK/uqJI0wD0Letyh8ptnCg==","shasum":"54ff7641ebdace4321610e53b9e41a95e91aecd7","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.4.tgz","fileCount":1075,"unpackedSize":2701527,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkLMNCSfD8eQr5lyWMcGDrokcS2EaKmiVF182vCBNcaQIgcI/JsCa0Fx0IMIHxe2eEtpikaBoD5Ml5owQVPUW1bfo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiaALYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqKxg//dxthtnX/3InvITOQrh+/V6Q2Z6hWvJZd0M/JkJdqwNM26QhO\r\njpg6ogJBzLk+SLCj/SmOJ2LKVs4YzwdY5a7ryYCFSo1xW3w/Hb82dISV9gVj\r\n2xMzA7Ol27coiiTRbUK2pn29IHGIoZ+uX5imxfMgazh180QX+rJ7CqqGiaIM\r\nZLC+D1WfDXao5fl74WVh7u0IfNOZhQO9SvkNyQBiIAc6Sdd0hnI7PMrTAnlR\r\ngmRnB0xxGx0MAW/BXoCUgJJMmWrprwMiisj+WOTLUgebSdawciN/s1Xr+Qa+\r\nafOdc0sjb/qh58uJCNo9wcvVhF/Zk5wjCjQ7GHcXzQobEb4IkTlfvKy8hCnu\r\nM+yx57c+LcLFbgdmK4c455DIrbNJroUkSN7sCObAs9xZc/joAeGM188oxe++\r\nXSjwVDaTNxvl842QTaMyT6JfvRLK3t//RMnrUxbt28nljcXDlJVpJs4FfSum\r\nup6W1AVe8Yn5VXAw4LLW20FVDFnm+es9WCX8uVF5uIONK+V9s0J5MKHJmU6G\r\nQ+ZkG4MSdjg+wqVjxkZxV+kYL/iJKsAgRQ0mVTk6d2DRfDTJK4FdMaTtoVNv\r\nGhdPtOQLyPE8/HgmkG59F53gd4KT19hVtG1JkFDqqIYC5b/AkxejYZt+P6SP\r\noFkgeIGJXp2E1Nt5IuwveCVXI1mQyF52Psc=\r\n=hCp5\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.4_1650983640016_0.8032047305501757"},"_hasShrinkwrap":false},"2.5.5":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.5","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","rimraf":"^3.0.2","source-map-support":"^0.5.21","ts-node":"^10.7.0","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"gitHead":"61f1333d4093503ef153215c2f620b90e9f12e9b","_id":"tstl@2.5.5","_nodeVersion":"16.13.2","_npmVersion":"8.1.2","dist":{"integrity":"sha512-havPffljz6VbqO4rEV+4SKg6BnN9w6j25j0sBIdGPywYRcwgGU1vDh1Dz1vwuK2D29F343GBI/cx5qYI+upxmw==","shasum":"8f212843b3d8f14de468a91c5f66fd20c2cd394a","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.5.tgz","fileCount":641,"unpackedSize":1413892,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7ZUOtKdoHxKtYHcWQFamMqGQqRjPNqJe4jtEHTarFrQIgIrmmuEU3NaK0eIlgypL/sk7VGo8ItFONALn67rHRYJE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiaAmfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoDVw//YMEttTrOFYAGKrZX85fRidfqi8wJWUaO1T4DStmmovebRPiT\r\n3XNCOd7fE8K8nGbZdDach3KjKO8rHatBAFKZNiEpP6i4pge7fDClhUZBp4Bq\r\nz0e2+yjpCNngUnS3CUfyzZ5X0y7tGgMwOAI9+zLKcj3xr71ReQgMZUqU6Oi0\r\nYLy/7wL4l4KFrS5CFj8e4Hh5ZWixdrDpnIbWjkqX/cOmhathXBaVns+oX1Xz\r\niEJtTadrORh9dybxE8wucIG6BMalMDsspb6gnMewRH14XlUgiJGnJassJgjZ\r\ngne+9oZ+9P4EdFAOFalklGIEJZ+RBilLOJs9+CyfiOHS4KGJLaWyobO4nvzJ\r\nEQI/0CyWkOktCCOCAiLXGh9kIqnq+Woyh418QvFuaiad4zKtPTnl9Ems71rt\r\nbkU5eX+bO+TVasr4NHuLRgIXwkprclOATmUPcobBjZKvjp9YtEP20+5VRxV0\r\ncQJJkijKHG0aLZ0UQF0qb+DXJUZslEFxq+7KLt2ofAvPvsOGh0WPhSsov0rV\r\nhK2xhmHUwgV3Ulw/gS/apDAgmQL7C0MHAaqxul9mpYrPg43gXsFl/sPYX7Yt\r\nDyGYWLztVB6huy91/aaaWUlo8i8BMdqI32NL+XsqYZW2K8eVAJuJRHdceEN0\r\nvZQpZ9HzXRgmPeWCCwCgPi4b75OR5uPFgN8=\r\n=UKPU\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.5_1650985375221_0.8646077462379733"},"_hasShrinkwrap":false},"2.5.6":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.6","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","rimraf":"^3.0.2","source-map-support":"^0.5.21","ts-node":"^10.7.0","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"gitHead":"61f1333d4093503ef153215c2f620b90e9f12e9b","_id":"tstl@2.5.6","_nodeVersion":"16.13.2","_npmVersion":"8.1.2","dist":{"integrity":"sha512-dsklGstapNPKYw/BKBRAcKHgZpzarjifCdAm9CyyQWlzufMV07DuOo1IM2rG+SlsfYIARxmFeelGOqTyIWrjDA==","shasum":"24a039fd8e79689e263f6797560af0cb79cc4a2c","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.6.tgz","fileCount":641,"unpackedSize":1413942,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDP9ovse4/F+6trzi3onYC0m8igpa6GFhVctT5G0GxUhwIhANAeRHCkP2i8YOCKp7L3FBTFCk81/+P7JwUQAuKBlusk"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiaXInACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqJPw/8D7ougDMKWHcGRvFPCREcrpGVIw1eAMNPa1dlkr9ObD3eGCbk\r\nvPeeqW058PaHNKgxi4WMW9CTlYnAn/HbPkwGJWgHMfph09O1TG5wG6PKf/Kx\r\n5GkelEDeewav/FycaGb3piRKZBbWhtGiIbYdxhCgMrcxniRdYzTIHBcsJbnh\r\nYLa+dfgP2z4yibiVKg3lxE6bNgIe6KwvoBlEZo1eqtrZ4bKc3ywpK/mTR2sp\r\ns2hWt5eSMAxNH2R1EyyeDX9/sf59xVTU2ZOksB/U9kqJOYtMBLCpWQsInebf\r\nGnuIad9pCi5UWmzRIdK9cNgYZSVffkHHNmrou/CBFglWvGTQrgEGFcYDDOhH\r\n/0g0PJcQvVpcPzVoHA2qfAaYCL3ZiWkr8f2+/wwXgV8tFn3jV8PbSoYxNv+r\r\nJr/iK/eclFCSD8T1XtsMxTFCqsjVLgQXa7Sg4ZkSiyIxh9uY3dP74C+3TwoI\r\n64Hhwe1FY5y+txNiPmVIN0d1vxImMtWg9AEu0hG5MnE6CxN6+o1KfQ3KxEw1\r\n6Hw1lVoxEH/WHcMyfO4xbU9Bf9TZkcsmT9ji0cZZSMqd64Y0+ukJ9LnO9pvG\r\n3IxNZGLdFTH1cpKF5ORi0j3x5R99sXAv5KRwYAVoL34ayGNJAlCTfmAhc/D4\r\nVF6N1SMxYKqKTsY0pHF7oPZkLqjqGQXMVls=\r\n=98vd\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.6_1651077671481_0.6347060330842993"},"_hasShrinkwrap":false},"2.5.7":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.7","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","rimraf":"^3.0.2","source-map-support":"^0.5.21","ts-node":"^10.7.0","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"_id":"tstl@2.5.7","_nodeVersion":"16.6.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-h0D6dJGsE7oa1hqsO0xpUfU+B19QZMzfeIqiepCbq4etydEV4Jk2FJ3o+jJaahwOTW5JcRZzZjBkF1jRXgwq1A==","shasum":"c3d2f6b87c5529156a68ca2ec3295c6511d74625","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.7.tgz","fileCount":641,"unpackedSize":1389509,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1zPSkrOGMPKqBtPuSkp8QKWS5pxEDM401XcIkp+ByzgIhAIv2H/xVDI2As3BiWV95YNvCa6K8yNqTnzh4dtghJwTL"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJizh+bACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqUYQ//VveF2fGpICVBqed3u05lzVI63dQqvigbw6Cu+Lgt6L6RoqKP\r\nNsPyv+yZJB5Ktere6GmgOszIh9C+JUdvfD9ho5Vi12WcmjVAb481eqgVnAAp\r\nBZzxisfWkS62JgeMYOYCWEo9kFX8bh72zhnbNE7kxq/0QoUT4RlEU98QvDOG\r\niDLSDbmUmvQmQI19YvERmjYOA135r3J40IvX40zgBUbeeOLh+kMP9eEpXSjj\r\npMDDm8hDb9nSiG9oou2DxjJr8zUXEsIafJ5jmU4EFH387UAh4ZJbIdYqBObg\r\nrlWN1U1vo1qruzS7m6Z+HqvXgmWZwiPm5Mrb4GbjNrt13jK3WxCwJQgRoGqt\r\nelSskOuw+LbWmj4YqM/M9pct3XbNAR1zykbykbjdaid0lyxwBI5b6/GfvX3i\r\ng38aIV2RC7/9Z2fWcfigu9KXfh0mAHbgVVfimtU1Hqq+M7QJnTZsey4jCvML\r\nno4UA/Q2mxyTiUliX3vULSODf0bQBiYpGpohgMPCDjLlTKg2zzgXsJObxwrR\r\n1fXDoKU1Umy2CohLOfSqg4q6+M9a/LfQG8lE8gqy9M0R1aZHMTqjFnRgN2Qc\r\nTEIoPsikojXlLMlnaW6ArfDSLpaiws1Wi5h8gPt97nrlSJRsaYCk4vS7JK1a\r\nc2tfvCVA5OLFkBhjjwIRHLp55YaRmTQobQw=\r\n=foTy\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.7_1657675674593_0.4086566165673893"},"_hasShrinkwrap":false},"2.5.8":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.8","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run build && ts-node build/dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","rimraf":"^3.0.2","source-map-support":"^0.5.21","ts-node":"^10.7.0","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"_id":"tstl@2.5.8","_nodeVersion":"16.6.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-NtwB4wQA0QQOqVYq+AEx9d8BlKGjFKHTf24XJlWmUkIQ4o7QOl4ecwrfWzx+bAbUu2KdNb/2iNgCyHJKvEuwXw==","shasum":"8d5eb81573bb01eb4f1603d0f7bb1668a2faa7e7","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.8.tgz","fileCount":641,"unpackedSize":1393030,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCNbtInu/ZdidXzpoJNyMfWIDG5sEJnNPccrS+BfgphQIhAN2ahGUb+kIKEtTV5WyolRT/NwsodE3J0AIbkYwRbLLa"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi302hACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrwjQ/9E9wbq8o2D1Am/ISJg0xC+Cp/EHOIkRruO/e7jmERt1B+RP8J\r\n9ZmHlBFJ3GYiySjf6HAEqTw1JEFRsOC83Lnfx2qYFT8/4aWqZE/Gn/bbq67n\r\ngzFL573caifZxLtywGfLnofsoWM7IJrTQZ8RTOBcvrM2TgafnlEyBy+nJPwy\r\n/EPzWCFG6iXzss+PCtGnP8amFliXQjPt6NEq/rmhJFjb+vhGLxaWLU6WSJqA\r\n7825LzNEockHxuq94oA+52xQpgOKERcMBLqjuICn6QRx1u27hsWejT2ZCJ/V\r\nmST1cPjYazKlPCDXtLrxTNfp8tG+fFMsLMz/1ulSciXFJRwIqrynUCZS8Ssi\r\nX0GBKbrsLblyrFLbrU74GGCVyImHa30GXY/YI+J2rMatD64stDgaPD148EF+\r\nHxefv9QOLevLJI1ABoRAqge0Gzt63m+6oVcPAyMHlGTf6rhkP/RAN7sjTjeK\r\np9t5LwZlehZB/hu03XCUzNKirIpqEKXCtlYaFODnkY+mkZMwjNoaR6UL1+TD\r\nCFWvHYXkPHnAaPGaXXXTk0TvGVDkzYjal703g+Ticp6RInrCX3v+/9WjAdKG\r\n0e7V5s1XV/kyfIwq53CCpAP6FegMMT6AdizpT2u/goPK4+DnsBWbrXEpYCo7\r\nP3JZ+SQpNA88A3hEKYCSt9uU4MZVKDX6RaM=\r\n=0uZp\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.8_1658801569579_0.9127780638834744"},"_hasShrinkwrap":false},"2.5.9-dev.20221009":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.9-dev.20221009","main":"./index.js","module":"./index.mjs","esnext":"./index.mjs","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"ts-node build/clean","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run test:ts && npm run dist && cd dist && npm publish","package:next":"npm run package -- --tag next","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","rimraf":"^3.0.2","source-map-support":"^0.5.21","ts-node":"^10.7.0","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"readme":"# TypeScript Standard Template Library\r\n![TSTL logo](https://raw.githubusercontent.com/samchon/logos/master/tstl.svg?token=ADEMSNKR53UIHDFF5VDPHBLBZ4M4U)\r\n\r\n```bash\r\nnpm install --save tstl\r\n```\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](https://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque](https://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List](https://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList](https://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](https://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](https://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](https://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap](https://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](https://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](https://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet](https://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap](https://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](https://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](https://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack](https://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue](https://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](https://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError](https://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError](https://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](https://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://samchon.github.io/tstl/api/interfaces/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](https://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](https://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex](https://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex](https://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](https://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex](https://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](https://samchon.github.io/tstl/api/classes/std.semaphore.html)\r\n    - [Latch](https://samchon.github.io/tstl/api/classes/std.latch.html)\r\n    - [Barrier](https://samchon.github.io/tstl/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std from \"tstl\";\r\n\r\nfunction main(): void\r\n{\r\n    const map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    map.emplace(1, \"First\");\r\n    map.emplace(4, \"Fourth\");\r\n    map.emplace(5, \"Fifth\");\r\n    map.set(9, \"Nineth\");\r\n\r\n    for (const it of map)\r\n        console.log(it.first, it.second);\r\n\r\n    const it: std.TreeMap.Iterator<number, string> = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](https://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ASTL](https://github.com/samchon/astl) - C++ STL for AssemblyScript\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n    - [Mutex-Server](https://github.com/samchon/mutex-server) - Critical sections in the network level","readmeFilename":"README.md","gitHead":"34115850b6a96db51252cfaa9951952c2e3686b6","_id":"tstl@2.5.9-dev.20221009","_nodeVersion":"18.4.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-6jY86Tazusk2SAZFFDrB3QO1CrZk7wOFBVXNYvx6pq5OfW5yxHJECU7rleSq8kERaYK2d5zS153nEvtvLjfV3Q==","shasum":"a1b3d1c248b5f053efa02b62474919dca3d1163b","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.9-dev.20221009.tgz","fileCount":853,"unpackedSize":1916321,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGTZaDN6LYlhOnKV/R5jKNqrPpv3ahkiQGoe1o7JPfIAIhALGcaONlPSGcNAYZH7VgASmORpS40/6O3rxcp1fuLSJV"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjQoMMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqVLhAAjvSx0Y5VxkkSkGDU+E/whzfqBldMtAn7D8r8pT5dXYNePw04\r\nHuDJ0tvVJRJh5YVRTQyotusE2tPlKjwGoCzOCsXp//UZdwxiwY3jTiAiJTZp\r\n3uupnDeuDwqbwRHxJcfR98kSTBXMdgffdHAmWfClIX6xqc4szibpdGBkRjoU\r\n6UXva3B1gzKzVWolxjysHVJYuaxqh22t+/qUskHjfZMZaMnz8EAnhZlWSHRN\r\ns/IeInZygwXXSNKKMoJKnPcC9bylWLlNGF6x51ba+OHW2f6u9xj/U5p/eK1q\r\nDL7zer3OKstwUb63X3kOMTA8H8DGXx7jOk1CBZaueuQX+lcj1Og/xhcFg+a4\r\nSf5hL5a63u19igexopmNBl6/Bsbvm0yaD/nfpeF9YA8lMKmuSVQ35t/EuCqj\r\nIHjU21b+tX0iuqm9dS/HROcbTfWNdzB8p6AkftCT/fDrwn1btd9DUy0QXTKw\r\n2xj+oFkPBCQCVsFo/PtggTW7G2oZ1SShc/DcWXTMB0S6AuvXg1BluJRnqajq\r\n7GM53CifQ28n0rqgu+FZQCKrDHO1K2YH7NMExr8H8t7lkz4Na2sxQzCyNDEa\r\n7vWnfJjBUGIcYc6bziEFQyG9RpyiWcFs4Y9a9DRNc+RL1SUuYdchfG8dDFxI\r\nyoa7YY1lFcSuyMDa7/9loNNfiK6vK0iyUeI=\r\n=xkdJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.9-dev.20221009_1665303308016_0.3198840736637256"},"_hasShrinkwrap":false},"2.5.9":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.9","main":"./index.js","module":"./index.mjs","esnext":"./index.mjs","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"rimraf dist","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run test:ts && npm run dist && cd dist && npm publish","package:next":"npm run package -- --tag next","prettier":"prettier --write ./**/*.ts","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.7.1","rimraf":"^3.0.2","source-map-support":"^0.5.21","ts-node":"^10.7.0","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"gitHead":"33668116e7d1793465b375895b204c054693dc32","_id":"tstl@2.5.9","_nodeVersion":"18.4.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-wwWokrQQkwCgEN+tu7+P/5EtKQ8qY7YQg6wjriq2D5XkYL4EOAqvD02hEWQ8lpI/3IK7BzIyUpSCOrPb8paP2A==","shasum":"332764d81279c9857548359e8361fe4de61e3589","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.9.tgz","fileCount":853,"unpackedSize":1917889,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEXTdKwsGyHb9pHtd8e6TzKq6WCVkzuZcpce/KPcQYUQIgDMQVEtT6U3PAwUP6SlsBB87ckl1sl2C+/t+W5nv+mHs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjQodLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmphaw//Ww8S1CzQ+wIL2tXyXuQ04JhBWwoAfaPj1j70CKhJX1htJUYJ\r\n4TNrCxNkUvIIdWrGaPZ4njFiBgRFiXyt6PdBEyWgD+57Voc14t+vYCaVoKSA\r\nZO+9IcHAaGvWx0OeeV5uPaPQk+3EmpohE6pT88m06fR8+Ps/LYHuhmRDXfvJ\r\nOdZn83665S/zrohUK/X0kIy3r6otIVoGUJ9DC+IYPMvk3d5W3vLx+fYJ+BTe\r\nJ811UhSw1YjJZenHuZANgInOqYXSTqIn33HJqxmJ8wp4KpC3EC3OWJA7enbq\r\nFE5XnMBsmwhOwaFt6wwRzwbnbQgc+TvW2FShHo6K7vXPeLAlx+Plqe5O3qJN\r\nP9wdv2pWQUJ1+yiu/siHM4OT55twCUhZTqnJH2DpNAc+9spf8vHjnmaFeBQd\r\nQlyawmmrVlCHPu2DNuEf9BWE03YM/wyNyt77d5v8HV1fvDSvyl0/01QBnE7S\r\nspLxW0vvAIqPJw545PsPXkXC7DrQ3B7d4XVTtzMPn6D66rkkU3GW0mbfQSgR\r\nhnC3lZDw+GyxfMNTPlp1qq45ClQaX+5Rj97SAfz7CGUTt9nW0KiOf5U8akDK\r\n7yKpOw7oxnYxwgNDono6nzyjvO8iPi8hqCWDJnW8DcHpeAORi5EI0iI+cItK\r\n1xoOHj9VyeH04CVv4S2ZGbbhb0V59NqACMw=\r\n=aBEw\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.9_1665304395157_0.2226440953329052"},"_hasShrinkwrap":false},"2.5.10-dev.20221009":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.10-dev.20221009","main":"./lib/csm/index.js","module":"./lib/esm/index.mjs","esnext":"./lib/esm/index.mjs","typings":"./lib/esm/index.d.ts","exports":{"./**.js":{"import":"./lib/esm/**.js","require":"./lib/csm/**.js"}},"scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"rimraf dist","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run test:ts && npm run dist && cd dist && npm publish","package:next":"npm run package -- --tag next","prettier":"prettier --write ./**/*.ts","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.7.1","rimraf":"^3.0.2","source-map-support":"^0.5.21","ts-node":"^10.7.0","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"readme":"# TypeScript Standard Template Library\r\n![TSTL logo](https://raw.githubusercontent.com/samchon/logos/master/tstl.svg?token=ADEMSNKR53UIHDFF5VDPHBLBZ4M4U)\r\n\r\n```bash\r\nnpm install --save tstl\r\n```\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](https://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque](https://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List](https://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList](https://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](https://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](https://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](https://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap](https://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](https://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](https://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet](https://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap](https://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](https://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](https://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack](https://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue](https://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](https://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError](https://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError](https://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](https://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://samchon.github.io/tstl/api/interfaces/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](https://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](https://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex](https://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex](https://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](https://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex](https://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](https://samchon.github.io/tstl/api/classes/std.semaphore.html)\r\n    - [Latch](https://samchon.github.io/tstl/api/classes/std.latch.html)\r\n    - [Barrier](https://samchon.github.io/tstl/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std from \"tstl\";\r\n\r\nfunction main(): void\r\n{\r\n    const map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    map.emplace(1, \"First\");\r\n    map.emplace(4, \"Fourth\");\r\n    map.emplace(5, \"Fifth\");\r\n    map.set(9, \"Nineth\");\r\n\r\n    for (const it of map)\r\n        console.log(it.first, it.second);\r\n\r\n    const it: std.TreeMap.Iterator<number, string> = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](https://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ASTL](https://github.com/samchon/astl) - C++ STL for AssemblyScript\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n    - [Mutex-Server](https://github.com/samchon/mutex-server) - Critical sections in the network level","readmeFilename":"README.md","gitHead":"d3c995b92d86c05db3a850a776f2d7ebad00cb5d","_id":"tstl@2.5.10-dev.20221009","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-0sDnImTFHTpxOqL6yhP1vopXXlaE0emycGrJt7dRckmwOy4FUswtnBh43v6XrO8zOUo8SomwCwPfkvXyWhe+JQ==","shasum":"602ce1b6c1bfbaf38ea8bee0b6034e70be595f83","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.10-dev.20221009.tgz","fileCount":1587,"unpackedSize":2871457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGq8/qieZRkJBdFRS32Wc6Skhbs4jOa21c/FKCR7A+EdAiBg2G5pRiArCmOklmqgHXsndJmgOFM1Nf4Bp5vJShPCVw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjQ1VTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqSQg/5ATkFAVKSXr6k2EcaKBh9nP1/q8e2eTcue7eVZ2flI2edUttd\r\nDHzmbi6Jfax0WMtbpxyWVBMfZF6sEf2QVo7VTPXPyk7E8ge7s9oJxIHlUtZw\r\nx9B1AEY2VgSiw20BaKsEqsZrPiX6FeQ0d9lCGjf5p/5jovmrxA4XFESyUbwX\r\nv9tPZ7RO2ezh9Ynk1Q5V8yZ3tQl7hB2ZfYmdZkdsSYSgxrvJINAkW2RDDSG7\r\nLA3zLFoGbD5udG500MQMhcEa/lPPn6YhVG6LapqUb9mAtO3PLAxTFQrLs8dP\r\nvjoXsCAW2DJGuMRjGwdtBVtm3ny39ClhWL082RuCtEfk9Pi8Vw22WrFK0ba+\r\njVmNUZmH/8AIZC/yjK3F7AkVa2pA3leagNvOqSR09IwGBsWWD3DzDz5k01bm\r\nMTP2yHtORw3oaw9ry6ATOHTXNYh+Ou41/3AFIlmgBaZj12UZrgoA+JNHBeCc\r\nt5TxYsoisYn2Dc6819tjji1V8EaalC/Qao7Niw1nRXay1zuIXN0SQsyGyCuJ\r\nH4RIN4ZKnX5m9hhPDEFgZViRf+f4y2BEPzFDDwueIdu02NXcK2TiPbh7nx0R\r\niDcNaT2z+r8+eUhkf9FvizQCwbuhFgQjiJ06CEmIyh5tmfyAfb9S5NVNdGib\r\ntHvk2Pb9/WAxJWa7a97KQhoB9F61ycFvxos=\r\n=w0IA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.10-dev.20221009_1665357139504_0.5900321852491524"},"_hasShrinkwrap":false},"2.5.10-dev.20221010-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.10-dev.20221010-2","main":"./index.js","module":"./index.mjs","esnext":"./index.mjs","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"rimraf dist","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run test:ts && npm run dist && cd dist && npm publish","package:next":"npm run package -- --tag next","prettier":"prettier --write ./**/*.ts","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.7.1","rimraf":"^3.0.2","source-map-support":"^0.5.21","ts-node":"^10.7.0","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"readme":"# TypeScript Standard Template Library\r\n![TSTL logo](https://raw.githubusercontent.com/samchon/logos/master/tstl.svg?token=ADEMSNKR53UIHDFF5VDPHBLBZ4M4U)\r\n\r\n```bash\r\nnpm install --save tstl\r\n```\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](https://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque](https://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List](https://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList](https://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](https://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](https://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](https://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap](https://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](https://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](https://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet](https://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap](https://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](https://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](https://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack](https://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue](https://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](https://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError](https://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError](https://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](https://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://samchon.github.io/tstl/api/interfaces/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](https://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](https://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex](https://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex](https://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](https://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex](https://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](https://samchon.github.io/tstl/api/classes/std.semaphore.html)\r\n    - [Latch](https://samchon.github.io/tstl/api/classes/std.latch.html)\r\n    - [Barrier](https://samchon.github.io/tstl/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std from \"tstl\";\r\n\r\nfunction main(): void\r\n{\r\n    const map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    map.emplace(1, \"First\");\r\n    map.emplace(4, \"Fourth\");\r\n    map.emplace(5, \"Fifth\");\r\n    map.set(9, \"Nineth\");\r\n\r\n    for (const it of map)\r\n        console.log(it.first, it.second);\r\n\r\n    const it: std.TreeMap.Iterator<number, string> = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](https://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ASTL](https://github.com/samchon/astl) - C++ STL for AssemblyScript\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n    - [Mutex-Server](https://github.com/samchon/mutex-server) - Critical sections in the network level","readmeFilename":"README.md","gitHead":"d3c995b92d86c05db3a850a776f2d7ebad00cb5d","_id":"tstl@2.5.10-dev.20221010-2","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-18dpIhJKBXfn+3hCFoJxfm7vBsGoHmsb4+Y0EwSAxLI4Kgbvmrr4mathOiGyqSicUo2zXR2JB9rQpe7dhRLnNA==","shasum":"cc3d206dcf57f57f919b7457bc8edc0edd408bb2","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.10-dev.20221010-2.tgz","fileCount":853,"unpackedSize":1921115,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaU++LrAjqQO/6Zfq2f+N7pAoppSfgnQKFSMURhTNxyQIgDlBDc7Qzc5R475BNXSsUOx54sDSq48BMSmWna6ZUVpI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjQ2W1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrsMA/8CifdbecG5GMLWgorBVtkK8s8NYJRbwGpQ+iMIMshFjxJwOFM\r\n2EMHnZGGa7mzcwCf7aLJan9tC83vGp9LYTlScBoro8qvctRXe/gSlY4VXD5M\r\n2kelwykfDVw/bsIQZOF0hTBpjpVuUNeVO9ad46rHplhtgdnd/p9S8XpatkNn\r\n87xBUp94EpeIei/zQMBSCCfxN+pmGbwqTExDhYcJ9sLMjAIlPM430gMBbanG\r\n+gGlRMSGCHtTRr2VcY7Dxyqt2qjuSjvh+oaSR28XDL+YbYR1eHlIRD7HcwfU\r\nCUWwh4ZtSdeqdMYiF/x79O6i10mgm19VsUCWmFuThg/YOyfNsgZDUfyzQSs8\r\nds726N9sxd7cSzqtJG9H0rn94FgPoYrB4G88A3YHjqlmbWSq3WV0F6IqU2uP\r\nNPRfxWSRgPIie690za8Abemg8mE6moTkNQZbrnkA/3cIeB3fv8HQenTIbe5O\r\nCVMZfmi/aOIxnMp2YFBbp+eU/K5rZbM7pW7uOfjYaO2bjKn43vnLVNYleisU\r\nKDajetOYILx2lLZYPZXXT1N2boNHA4/I3JaAgUm2JUB/q8uWb9JLpAjTwfE3\r\nOAC3GkHfMnWtl6ur3Yd5Au9bktGjgRn6XnaS5gLrxjAIC+Ujg3CeOTgS/lmi\r\ne4qSzjU7GuL1Xtpgrc2BWa9WQrD+69vzmwc=\r\n=2Okl\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.10-dev.20221010-2_1665361333346_0.11934345454713191"},"_hasShrinkwrap":false},"2.5.10":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.10","main":"./index.js","module":"./index.mjs","esnext":"./index.mjs","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"rimraf dist","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run test:ts && npm run dist && cd dist && npm publish","package:next":"npm run package -- --tag next","prettier":"prettier --write ./**/*.ts","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.7.1","rimraf":"^3.0.2","source-map-support":"^0.5.21","ts-node":"^10.7.0","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"gitHead":"80e0f88a88407c6c33e28152cfb7e0f0b43072cd","_id":"tstl@2.5.10","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-7a16nou4uSSNuXvSivp7+xbIea5CrA/4iVaG02hhDtMaS7fjhYNvgQNk0RjGSvZGif1HsjUR3B24ZDMroy5R4w==","shasum":"a08d9e26a87467f4c35921cfae9b22048d8ccbcd","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.10.tgz","fileCount":853,"unpackedSize":1921100,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBjf7XOh4EcLkHOtJBzYiq1lKREWITyo1oUK+I/9+ty4AiAPn0IeEyR1kxSRuNWUceVUFDAJZXlPeu+s/pM1QQCVkA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjQ2t/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoG5g/7BD5Kv+eNMCAFzP5rCDn76WxdD90u7oIwY3I8+KzdDpJe9Z5c\r\n+DFCFUHBff99pJJ5IDtk8LIY5OAi5ZLj3MbqoZPQog3gW9+J84+srEwNZ/bp\r\nuUU5/gA0HoJoIF4HYc5oL5QqnKcE8GqMR803ZIGPRWk60tXZas6Gw9SlwG7I\r\nD9satqwGWiMx2MOHfU9OQZcff9kBqE0SemSP1H4VVBj0T2LWaSLJENQ6hbtC\r\nKApHS/OKBjZ3tVh7fRo1VL+iMp/kAjgsJ2C+oT+O1Tc0UXJ1e9VSEJuuVI2M\r\nvzaLiUTO+I9mtAUt4sqmEBCwL8R0HeminpPhbbQetZJxKQ0S0IQndb3G4Hph\r\npzsSTjsURyeP/bxy+7gIUiJtPoMLYF119LD7kcR3EFnadIRZEWm5PhOT9bI5\r\nta5EqYHmGlC0+fLZmAcRQ/fABehbv1et/hvFQmy0JK7I5iOSe99qPdx5RxVy\r\nwfyfIzOBou99vlmYOj2N6+wOq/FQlN87cuTUpvVKR16xYoWqT+DjicOvbHu/\r\nnGMWoaeB6tR+s5NUm62Y9HbiBo6AWda/sUNkaVjPGaEARkB1G14WrRt393or\r\nBKpJ/sYLmMjGsu4aMCHaaD91A3XxSn9OlrFsez61nwBDA0WQ4qWDCHv0RG2+\r\nCsEAKVuOfsY5yaHU1YLTLgJzSO5hQk7WTqc=\r\n=op23\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.10_1665362815726_0.9601609911013782"},"_hasShrinkwrap":false},"2.5.11-dev.20221010":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.11-dev.20221010","main":"./index.js","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"rimraf dist","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run test:ts && npm run dist && cd dist && npm publish","package:next":"npm run package -- --tag next","prettier":"prettier --write ./**/*.ts","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.7.1","rimraf":"^3.0.2","source-map-support":"^0.5.21","ts-node":"^10.7.0","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"readme":"# TypeScript Standard Template Library\r\n![TSTL logo](https://raw.githubusercontent.com/samchon/logos/master/tstl.svg?token=ADEMSNKR53UIHDFF5VDPHBLBZ4M4U)\r\n\r\n```bash\r\nnpm install --save tstl\r\n```\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](https://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque](https://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List](https://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList](https://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](https://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](https://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](https://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap](https://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](https://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](https://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet](https://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap](https://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](https://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](https://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack](https://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue](https://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](https://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError](https://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError](https://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](https://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://samchon.github.io/tstl/api/interfaces/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](https://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](https://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex](https://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex](https://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](https://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex](https://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](https://samchon.github.io/tstl/api/classes/std.semaphore.html)\r\n    - [Latch](https://samchon.github.io/tstl/api/classes/std.latch.html)\r\n    - [Barrier](https://samchon.github.io/tstl/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std from \"tstl\";\r\n\r\nfunction main(): void\r\n{\r\n    const map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    map.emplace(1, \"First\");\r\n    map.emplace(4, \"Fourth\");\r\n    map.emplace(5, \"Fifth\");\r\n    map.set(9, \"Nineth\");\r\n\r\n    for (const it of map)\r\n        console.log(it.first, it.second);\r\n\r\n    const it: std.TreeMap.Iterator<number, string> = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](https://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ASTL](https://github.com/samchon/astl) - C++ STL for AssemblyScript\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n    - [Mutex-Server](https://github.com/samchon/mutex-server) - Critical sections in the network level","readmeFilename":"README.md","gitHead":"80e0f88a88407c6c33e28152cfb7e0f0b43072cd","_id":"tstl@2.5.11-dev.20221010","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-MqpSyEyZt3B27Hpoo+REjgc7u6OACQvmS2QfkopwCV1y5NBn+5o4bhuNFnag0SbusnvvWva2NwP6fXT/n6giSg==","shasum":"3f704f7226cd520d2c71d0ca537e9b92f53557a9","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.11-dev.20221010.tgz","fileCount":429,"unpackedSize":1161211,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+J3Y3NNdRFbZfpvTT4SuHlH425cW5s2jCOnGnCps8iAIhAPAArtPlsWnChKam1MR4NsGVa6HPkRdQfvlaaC76xhV/"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjQ2v5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrd+A/9HgakikbyfoVxAcDJ1QlNw3taIDQ+KFLfoo+y9L+YYVQrGRxp\r\nI9esIVf7/7u14ZJWVjXa0zyXLYsMIBROR5uPMwp3dvyaSLkIicFX1qpJiapQ\r\nluiBGpgrPUWlCjPpfAsuTzqWnhnduBADCGtnuZrd/tSp26aqH5+lu0roXr69\r\ndfP6opVHTe6cohVG1ZbNcfO1An5Jf8RG5sn4WGR3LCMuvn939Ev41wZwTavw\r\nE5ufRQKZ9Wwx8JTLe9gsLqaaaIrY0R6Zi0JATe/1HcRIOqHa0WRARDsQjOu3\r\nFslKq+azVBseQG6vGPQoMB/KI62Pafp/j7Lb6iKiil60+VAnpdLTXCtGsKak\r\nc1l/vyKw8uBw0RarHJLnsuP6xvvYwGVs9pKCTPC9qrmdS/WJUmZYoCLGzPsg\r\nUI+zYIJ5yP39bkc6YjdUObva12wBpsgmWBjoTV6zQyQaQBtzOYcokDpKOVIO\r\nDIpjXrlqs2dPTEWFPISAroKZ1ywukadBZHscjg/iHs/GVxrai8dUpG0F6yyu\r\nusHFhh1YnT6OeEmoM4q3LvLzdtCGPveJeuKofatwAO1lfryzo9E6KUcy52PF\r\nQ6zW2tNZdq5eiOsl21UXHHIVQtjY31XMXjxHKYkZ4AXgqOR4+Q8r9otjdpO9\r\nKlLc7j30yrMzMLzQGC+xKIDbgZF4Obai8AQ=\r\n=hna4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.11-dev.20221010_1665362937311_0.02293375077381521"},"_hasShrinkwrap":false},"2.5.11-dev.20221010-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.11-dev.20221010-2","main":"./index.js","module":"./index.mjs","esnext":"./index.mjs","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"rimraf dist","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run test:ts && npm run dist && cd dist && npm publish","package:next":"npm run package -- --tag next","prettier":"prettier --write ./**/*.ts","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.7.1","rimraf":"^3.0.2","source-map-support":"^0.5.21","ts-node":"^10.7.0","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"readme":"# TypeScript Standard Template Library\r\n![TSTL logo](https://raw.githubusercontent.com/samchon/logos/master/tstl.svg?token=ADEMSNKR53UIHDFF5VDPHBLBZ4M4U)\r\n\r\n```bash\r\nnpm install --save tstl\r\n```\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](https://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque](https://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List](https://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList](https://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](https://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](https://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](https://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap](https://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](https://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](https://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet](https://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap](https://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](https://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](https://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack](https://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue](https://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](https://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError](https://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError](https://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](https://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://samchon.github.io/tstl/api/interfaces/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](https://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](https://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex](https://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex](https://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](https://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex](https://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](https://samchon.github.io/tstl/api/classes/std.semaphore.html)\r\n    - [Latch](https://samchon.github.io/tstl/api/classes/std.latch.html)\r\n    - [Barrier](https://samchon.github.io/tstl/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std from \"tstl\";\r\n\r\nfunction main(): void\r\n{\r\n    const map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    map.emplace(1, \"First\");\r\n    map.emplace(4, \"Fourth\");\r\n    map.emplace(5, \"Fifth\");\r\n    map.set(9, \"Nineth\");\r\n\r\n    for (const it of map)\r\n        console.log(it.first, it.second);\r\n\r\n    const it: std.TreeMap.Iterator<number, string> = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${x.first}, ${x.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](https://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ASTL](https://github.com/samchon/astl) - C++ STL for AssemblyScript\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n    - [Mutex-Server](https://github.com/samchon/mutex-server) - Critical sections in the network level","readmeFilename":"README.md","gitHead":"80e0f88a88407c6c33e28152cfb7e0f0b43072cd","_id":"tstl@2.5.11-dev.20221010-2","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-TpwNQWeLfOCWTFueoXd2gnOS/OCf6fYO9vgK+EmAQfK7WsdcFLcqNGJGDjY6v3dSDHLypviK1cO2cGCpTzcJnQ==","shasum":"3481e5e0bb723f418aaa755617d060103c982785","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.11-dev.20221010-2.tgz","fileCount":1065,"unpackedSize":2343360,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDBP9iNGYR4cbnEBnhUjW24ogFoZYvFMZsxia+1jPtzIAiB3kv0Vu8ZCBavVqjNQCm+avIKcMIikVMwiYXQ5Ys+oUA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjQ3ozACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpkzg//fe0NWziS6S7yduemjRtK38QfycX11v/0vGpBtNbxWQAna4bo\r\nOgDqq9e44T0uMo9pwzPHh9GiRW0Vp26Mr4p1l1WLOHaTZJqv77zKmT+2Js1O\r\nLv2lTw/yWTuMShzLw1mkw/pb+jMRpX7AO549mfsjdzUgCFjsNrew4jS3Umrl\r\nx5BuAMIxHB8Kp5+W0GYI8wTP090wE6zGEcdM1u/x7WLcoHsG/hs4vFUAONtI\r\nYx+0R0aTnDODPWW/bCIwj2lMNFF7OSjv3Ge3JkoegrqJaTxLdoDNldt5gyaK\r\nCr1yahSZJLtq3EG/kV958DCGgz9bwg12ws75CDhljyQhaRCzEx3ZcF9udYK7\r\ngpQPTG4Ge+UXyaC/Y4YlHMTVaBBX739u41G17uDrkUYlc/oZ+0IwGkuN82tX\r\nTGymVgaXMyON0dQ8MFXFQxI/LdEW/d8Rd/mdPydkTGWIpiWONuiE0ku9SYgK\r\n4k/qY4VqZuD/ZdQODFIzvVPCQH1Z5ahGcEsLSkuH49W9+PlxwkEpvb6mdGho\r\nEOW4TL28g5we7Hetj4sycjnwMd86e7QG8+I1ANLtpLkA1vshl8rWAQ5TJ/0h\r\nyZI/cSwiaFrbCXWhymGyYbRxhVWO8VhB+a6czZj6npv/H6UGgKZweLVoFGhO\r\nWaO2b3NDxgbzHm85yZRDMCZUBwtDqPnSbkY=\r\n=XCG0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.11-dev.20221010-2_1665366579371_0.09358165855665579"},"_hasShrinkwrap":false},"2.5.11":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.11","main":"./index.js","module":"./index.mjs","esnext":"./index.mjs","typings":"./index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"rimraf dist","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run test:ts && npm run dist && cd dist && npm publish","package:next":"npm run package -- --tag next","prettier":"prettier --write ./**/*.ts","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.7.1","rimraf":"^3.0.2","source-map-support":"^0.5.21","ts-node":"^10.7.0","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"gitHead":"06b5ccc70d4963757ccc648c179b43834d38645d","_id":"tstl@2.5.11","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-E02QsDqx3cdX8Za02nxDWjUaT9KBtPFVWlS1pc1xKxpaEl8RAzr6m3rPpXp6ErH2+ian4MrseVgfLbMZQrLYCA==","shasum":"318efdbf5603c28970010541dd786c3e04191611","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.11.tgz","fileCount":1065,"unpackedSize":2343345,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIER6AUFEMJq6bcEFT4KKOkg4khObr0b1/rMa2dRv8K1NAiEA+5GM6YNfEx4ZRnXia/98bQCB1ahdSPjFEQp8hBjsLnc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjQ3xyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmokFA//Ux+UxgQElWe50D/S+3z98mNmW9qOnaiu6fMRZWx4zasgfy70\r\n4BROME6HQiFWhP9Zg37rELCiIbMcXvcra2AO4dPDA+aQwOvNyIqdIapkV6uO\r\nI2hwMMKL8CgHM1+bpVYt1MTFoBOEPgpUnqOfnT1x/uRbkgHGPVFZjnenHLRG\r\nDzZZQ+cSvf3uuuY4pCAoX/6jwZc+app28aewHf08LHf4/L5oUzOkSToCS3Ou\r\nAB4eR8iJ+6YEQkXr0q5e5Vt1bk6fxLEataK2ytlqKieVNUaLQPQRr62dcz2a\r\nFEKbbpFuS6CjOwIpHNnt9kEkWJgP7oRdkrgVmAJe4PANsRn97VK2t9xnFcXd\r\nEQtVotIcZTMO+zQrbDHOZzdscDoFZcua/2iREdoqVXG2esX7nSWV2oVu2pGV\r\nwlEXwWlP1xxq42jQOT1l+AXe9MjIkrw+sMrxmFuGlovQ3/wkrE6JYGXdx+gG\r\nZeGE2oBsacy+PzVKzx2jZ025zQN8WMRxb427jfBH4x7Fk1BPPzgJVPJMJ/p0\r\nHF2FU2V1d7Bwekp/MAkXq7lbPXIIIx+UsBNuXOQDGao06n7McYWEHpSHRxw1\r\nczSTUGV21bPf7qF8PHyQfd9/H4A3N+7fsNetzrp7PejihHfwdcVz167XMJFp\r\nCZj7/EqqU1zQPRG0lKMqWl/hLBzOrAWNGuk=\r\n=OH+M\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.11_1665367153884_0.5683687514188001"},"_hasShrinkwrap":false},"2.5.12":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.12","typings":"./index.d.ts","main":"./index.js","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"rimraf dist","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run test:ts && npm run dist && cd dist && npm publish","package:next":"npm run package -- --tag next","prettier":"prettier --write ./**/*.ts","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.7.1","rimraf":"^3.0.2","source-map-support":"^0.5.21","ts-node":"^10.7.0","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"gitHead":"06b5ccc70d4963757ccc648c179b43834d38645d","_id":"tstl@2.5.12","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-xAJrE0R+PSxNXnQ7nJ1UPif/gBQYWMnEvIR6c7kKr+7oFrtalo+FunuJHLwpuH4DFClMB1hsaJTAOKkraET9Uw==","shasum":"a7cc68ec6736fd3198f553731a48f9dc0c7f85ad","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.12.tgz","fileCount":429,"unpackedSize":1161198,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDCngsFdgOEZlKhWCjIIbfxKCb+FOzYSJnnuzx0XkyduQIhAMHPPjl2DdVTzc/Q7P4DBwVPg2FqYaPw6ola4keB/ORJ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjQ4JRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoNiw//cJAFCbZ7mBx0INyiwudHZj0L1DXXrpyflEdUa3X+3F69nBfy\r\nv1chjUfKt+g1osYYXB3DDcrC+yG1pP7lGXCKQ0A0PKBrki6X/wwJwO4XMiLn\r\nXCydKgcdTMttDDLi7y1fR9rG89YuF506tFi8h8dawRB0AnPH3CrXY3NVvrcP\r\nb+Wyi4ucrAx8wdejs1tInvyNxNJDixXiAMRytFd00iwg5logHHy/pP0HYLfF\r\n6WLXrE+h0sDP0stxdBVx4AjBppLqKDo2gSKxCWA9Lt6A6PlNTmZkZuFb29k1\r\nEiPX9wuIq+zlRvs9jo+IbRn4r41d0H/lgju7U0Lbj9EGz4uOhgeqc/Y7nQA+\r\n2KYScv07dwLYUNtQ0TaDrPbCqrPZlrBpbw7mKILPbonGGWFVKSiEsYhmDQ2o\r\nSrEf2GrgDIN0qOz9/EPcQOTNen4lDY9vLsOdwRvkRXq1KniiIlA8SVrJ/Ugj\r\nJYDAieSaKBx8GIuEfrVU3sxKoiRgMdLgmnFyjYKAiwLVk7ZocAx48AQpFxiL\r\nqR6t2NMuwINdmW3Ode7noipaSOYOGpNoC4fWs0UKQpCxylEXJmwsnCaGrezH\r\nVFGgeSIL8/aD7r67pVd/ewQ/aFD424djAKjtzkWKP1JOaxVm9TBoUxP4/qq0\r\nmjIartHjyZLeEn8KYnOT+xY+CwtGLmrWIMg=\r\n=zb/T\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.12_1665368656905_0.5303029019365637"},"_hasShrinkwrap":false},"2.5.13":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.13","typings":"./index.d.ts","main":"./index.js","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"rimraf dist","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run test:ts && npm run dist && cd dist && npm publish","package:next":"npm run package -- --tag next","prettier":"prettier --write ./**/*.ts","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.7.1","rimraf":"^3.0.2","source-map-support":"^0.5.21","ts-node":"^10.7.0","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"gitHead":"aa97cb4ee1e9430422122d27df5015dc8b315746","_id":"tstl@2.5.13","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-h9wayHHFI5+yqt8iau0vqH96cTNhezhZ/Fk/hrIdpfkiMu3lg9nzyvMfs5bIdX51IVzZO6DudLqhkL/rVXpT6g==","shasum":"a5a5d27b79a12767e46a08525b3e045c5cdb1180","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.13.tgz","fileCount":429,"unpackedSize":1161256,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAqDfYTNjgHlZNElx+Z99cjmjgGlLcALAiInvbxQTdHgAiEA0iJxfpyaTJq5qZjl+Hn7Fm1cxdryOAHfhdos2BBiZ5I="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZ83HACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqGVBAAhMZieGntmyn9FgrSb91YMWxFxIyCScTdQ+uMiQ+6+HUKzXKJ\r\nhoWANQxWGoTZVi9IO6lD6tVHYpUcsQmGhaLxefRJ/WmOxaaQ7+mQUiy+H4/V\r\n7AAox+WgUgK6Nvu54TlEU54O+OLU7ylYGcoFigq5mwEquzVomNdaNbfVuBPj\r\nXE0u7yb1Vh+dF7QtxlzFZduQas+dGki29Zd/GxY5cTA0gVlLHUT3UZgYN6Kr\r\ncn6pSPpVPJ8ZPHJL3nXc0oQQyWv+EKt8tdFgvWymiqEtZJ8chxt4KI3js7Ri\r\nS5r9eS10npSzmflTfk8QiE7eW0SiwzHnvfz4uljk4qlH4IQLK06pAKIjSRpO\r\nge586Kbz1UAM2sIsQR1HTuYRhaKcHimin8qr55euxW8lUTNibN+6Lthc2Mal\r\nEdl1VQScoOEYzj2U3b01dw3q3D57KyVfvL6GNCwzOrYN5/uyeINAglwcEKTa\r\nmUOKsIQSYK0nyxWhWbMZmyIzZ1zg8GtQb0g+MtFMQn11pWQjbd02oVs6tKf8\r\nvJZTWMF96gBrZ+I5iwSJ87cf5xXkaQPljRgCJJ1ziT+Qf92bnSXUGYEdZn/I\r\nbsReRE9ejCyFLmkHpCJGvwcEc966UmQ9AzXM7ktc1nu8+4gjEJfxepBPcMNM\r\n4r7oBOoyOvoPaLaMvnDebk5Wpeqvq+9hyUU=\r\n=zR20\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.13_1667747270966_0.5024179927325245"},"_hasShrinkwrap":false},"2.5.14":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.14","typings":"./index.d.ts","main":"./index.js","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"rimraf dist","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run test:ts && npm run dist && cd dist && npm publish","package:next":"npm run package -- --tag next","prettier":"prettier --write ./**/*.ts","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.7.1","rimraf":"^3.0.2","source-map-support":"^0.5.21","ts-node":"^10.7.0","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"_id":"tstl@2.5.14","gitHead":"5d60d6ab97b8a08d9839eedd9d0c97e314ebc0df","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-a87uLNUQmviR4rJl9khdXB4zF/18XO8vLP9iSg8417XkdkQmyWC5T8FPr+r/qu+U4Oag5xb/WSvU50FX4vLh+A==","shasum":"d46e4f9cadb93edb6b6e85aca9e57621ebfe02d0","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.14.tgz","fileCount":427,"unpackedSize":1158309,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAp7CMReW/1ZczVyEa/MHRsBWWd4esXaGzyZmumG6MGMAiB1O/BAnYzrWy8GMzz9v4AxH5/NoeCcjgO10zIuk7Ud/w=="}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.14_1711508737550_0.07433241229250198"},"_hasShrinkwrap":false},"2.5.15":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.15","typings":"./index.d.ts","main":"./index.js","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"rimraf dist","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run test:ts && npm run dist && cd dist && npm publish","package:next":"npm run package -- --tag next","prettier":"prettier --write ./**/*.ts","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.7.1","rimraf":"^3.0.2","source-map-support":"^0.5.21","ts-node":"^10.7.0","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"_id":"tstl@2.5.15","gitHead":"5d60d6ab97b8a08d9839eedd9d0c97e314ebc0df","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-MjaWqHLJKOuw2OTQr1tBwZ1C+f3CxVs0QZE9PrsBSYYSwU5HIHV2XMs50K7+QooyRVboGa/UyJvfmpelvFlGpg==","shasum":"848d5afb967bbc83a22bd06dc408d6b37eec7e9e","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.15.tgz","fileCount":427,"unpackedSize":1158307,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD6krrAE8oo3zZcE9J5YHLT6MOfDeic4adHuRm1I+JfDQIge7GS3qUq+AmzadtYuglq5R3pBoG8omAkCPBTcEfjgvE="}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.15_1711509290810_0.5684378056489725"},"_hasShrinkwrap":false},"2.5.16":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"2.5.16","typings":"./index.d.ts","main":"./index.js","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","migration":"ts-node build/migration","benchmark":"node benchmark","build":"npm run clean && npm run module && npm run compile && npm run test","clean":"rimraf dist","compile":"tsc","dev":"tsc --watch","dev:ts":"tsc --watch --noEmit --module esnext","dist":"ts-node build/dist","module":"tsc --noEmit --module amd && tsc --noEmit --module system && tsc --noEmit --module umd && tsc --noEmit --module esnext","package":"npm run test:ts && npm run dist && cd dist && npm publish","package:next":"npm run package -- --tag next","prettier":"prettier --write ./**/*.ts","test":"node dist/test","test:ts":"ts-node src/test"},"devDependencies":{"@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.7.1","rimraf":"^3.0.2","source-map-support":"^0.5.21","ts-node":"^10.7.0","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"_id":"tstl@2.5.16","gitHead":"5d60d6ab97b8a08d9839eedd9d0c97e314ebc0df","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-+O2ybLVLKcBwKm4HymCEwZIT0PpwS3gCYnxfSDEjJEKADvIFruaQjd3m7CAKNU1c7N3X3WjVz87re7TA2A5FUw==","shasum":"0b52a6a572ece7dc2b532ebc89ba3a95c95c4009","tarball":"https://registry.npmjs.org/tstl/-/tstl-2.5.16.tgz","fileCount":427,"unpackedSize":1158742,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAxn9FdVXR+OylB3ryHeJ5ZCow+fMo6UbR+Tu+eEL9yOAiEA+pn/CFK2m3UCSMIXzyOj/sUk/W5+WQonW5WJasIqw2Y="}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_2.5.16_1711513915086_0.020292203010110477"},"_hasShrinkwrap":false},"3.0.0-dev.20240328":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"3.0.0-dev.20240328","main":"./lib/index.js","typings":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","require":"./lib/index.js","import":"./lib/index.mjs"}},"scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","benchmark":"node benchmark","build":"rimraf lib && tsc && rollup","dev":"rimraf lib && tsc --watch","prettier":"prettier --write ./src","test":"node lib/test"},"devDependencies":{"@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.6","@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.7.1","rimraf":"^3.0.2","rollup":"^4.13.1","source-map-support":"^0.5.21","ts-node":"^10.7.0","tslib":"^2.6.2","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"_id":"tstl@3.0.0-dev.20240328","readme":"# TypeScript Standard Template Library\r\n![tstl](https://user-images.githubusercontent.com/13158709/222362879-3da6c27f-8f73-4b1d-b63a-ec23ff51e71e.png)\r\n\r\n```bash\r\nnpm install --save tstl\r\n```\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](https://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque](https://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List](https://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList](https://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](https://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](https://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](https://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap](https://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](https://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](https://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet](https://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap](https://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](https://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](https://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack](https://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue](https://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](https://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError](https://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError](https://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](https://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://samchon.github.io/tstl/api/interfaces/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](https://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](https://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex](https://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex](https://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](https://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex](https://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](https://samchon.github.io/tstl/api/classes/std.semaphore.html)\r\n    - [Latch](https://samchon.github.io/tstl/api/classes/std.latch.html)\r\n    - [Barrier](https://samchon.github.io/tstl/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std from \"tstl\";\r\n\r\nfunction main(): void\r\n{\r\n    const map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    map.emplace(1, \"First\");\r\n    map.emplace(4, \"Fourth\");\r\n    map.emplace(5, \"Fifth\");\r\n    map.set(9, \"Nineth\");\r\n\r\n    for (const it of map)\r\n        console.log(it.first, it.second);\r\n\r\n    const it: std.TreeMap.Iterator<number, string> = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${it.first}, ${it.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](https://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ASTL](https://github.com/samchon/astl) - C++ STL for AssemblyScript\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n    - [Mutex-Server](https://github.com/samchon/mutex-server) - Critical sections in the network level\r\n","readmeFilename":"README.md","gitHead":"c643412ace1df19211e06ed8855cc0b941fb0c78","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-ssFEGMuxxX9FRs1kbBIXjeaRFw+znBIQltdHoHaI0DTxUYLgdG8uWGOSNSdna++uq+tWy/sjPLZq9+OkHPU1vw==","shasum":"b243b138ae0a4f38b9a0a897c08c718304c9f3ea","tarball":"https://registry.npmjs.org/tstl/-/tstl-3.0.0-dev.20240328.tgz","fileCount":1055,"unpackedSize":2868684,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfQ14lF3+fZW7ILiELPwU4II5icIx9oaojdYG0qFIHbAIga3hwWV43LzQrgknSKsrEUnJSpC+zlXhkEJ4HYGhWzpY="}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_3.0.0-dev.20240328_1711561763681_0.9725512173963515"},"_hasShrinkwrap":false},"3.0.0-dev.20240328-2":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"3.0.0-dev.20240328-2","main":"./lib/index.js","typings":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","require":"./lib/index.js","import":"./lib/index.mjs"}},"scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","benchmark":"node benchmark","build":"rimraf lib && tsc && rollup -c","dev":"rimraf lib && tsc --watch","prettier":"prettier --write ./src","test":"node lib/test"},"devDependencies":{"@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.6","@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.7.1","rimraf":"^3.0.2","rollup":"^4.13.1","source-map-support":"^0.5.21","ts-node":"^10.7.0","tslib":"^2.6.2","typedoc":"^0.22.13","typescript":"^4.6.2"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"_id":"tstl@3.0.0-dev.20240328-2","readme":"# TypeScript Standard Template Library\r\n![tstl](https://user-images.githubusercontent.com/13158709/222362879-3da6c27f-8f73-4b1d-b63a-ec23ff51e71e.png)\r\n\r\n```bash\r\nnpm install --save tstl\r\n```\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](https://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque](https://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List](https://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList](https://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](https://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](https://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](https://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap](https://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](https://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](https://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet](https://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap](https://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](https://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](https://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack](https://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue](https://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](https://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError](https://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError](https://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](https://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://samchon.github.io/tstl/api/interfaces/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](https://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](https://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex](https://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex](https://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](https://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex](https://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](https://samchon.github.io/tstl/api/classes/std.semaphore.html)\r\n    - [Latch](https://samchon.github.io/tstl/api/classes/std.latch.html)\r\n    - [Barrier](https://samchon.github.io/tstl/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std from \"tstl\";\r\n\r\nfunction main(): void\r\n{\r\n    const map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    map.emplace(1, \"First\");\r\n    map.emplace(4, \"Fourth\");\r\n    map.emplace(5, \"Fifth\");\r\n    map.set(9, \"Nineth\");\r\n\r\n    for (const it of map)\r\n        console.log(it.first, it.second);\r\n\r\n    const it: std.TreeMap.Iterator<number, string> = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${it.first}, ${it.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](https://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ASTL](https://github.com/samchon/astl) - C++ STL for AssemblyScript\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n    - [Mutex-Server](https://github.com/samchon/mutex-server) - Critical sections in the network level\r\n","readmeFilename":"README.md","gitHead":"c643412ace1df19211e06ed8855cc0b941fb0c78","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-f980+wMIzmXUQ8WW3WqhUr3vciRvkl0ZAsuxBPXNVSVuVfABTZq1W11RnUYOTb5etIzDl5mUUAD6+ly4+TnudQ==","shasum":"2f88f081a66934bc23107ecb5ba53b7eecda9bcd","tarball":"https://registry.npmjs.org/tstl/-/tstl-3.0.0-dev.20240328-2.tgz","fileCount":1057,"unpackedSize":3372768,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCT3NnFjgVDjZWweaztqdBaWvAFv1JzRglQy+k3rX51FwIhAOiSaZa6+teXPUpLo7DH4NUkIaNOu5xLt9FK1yGCXuYo"}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_3.0.0-dev.20240328-2_1711561893105_0.5456799291284642"},"_hasShrinkwrap":false},"3.0.0-dev.20240328-3":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"3.0.0-dev.20240328-3","main":"./lib/index.js","typings":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","require":"./lib/index.js","import":"./lib/index.mjs"}},"scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","benchmark":"node benchmark","build":"rimraf lib && tsc && rollup -c","dev":"rimraf lib && tsc --watch","prettier":"prettier --write ./src","test":"node lib/test"},"devDependencies":{"@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.6","@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.7.1","rimraf":"^3.0.2","rollup":"^4.13.1","source-map-support":"^0.5.21","ts-node":"^10.7.0","tslib":"^2.6.2","typedoc":"^0.25.12","typescript":"^5.4.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"_id":"tstl@3.0.0-dev.20240328-3","readme":"# TypeScript Standard Template Library\r\n![tstl](https://user-images.githubusercontent.com/13158709/222362879-3da6c27f-8f73-4b1d-b63a-ec23ff51e71e.png)\r\n\r\n```bash\r\nnpm install --save tstl\r\n```\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](https://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque](https://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List](https://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList](https://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](https://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](https://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](https://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap](https://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](https://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](https://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet](https://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap](https://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](https://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](https://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack](https://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue](https://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](https://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError](https://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError](https://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](https://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://samchon.github.io/tstl/api/interfaces/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](https://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](https://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex](https://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex](https://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](https://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex](https://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](https://samchon.github.io/tstl/api/classes/std.semaphore.html)\r\n    - [Latch](https://samchon.github.io/tstl/api/classes/std.latch.html)\r\n    - [Barrier](https://samchon.github.io/tstl/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std from \"tstl\";\r\n\r\nfunction main(): void\r\n{\r\n    const map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    map.emplace(1, \"First\");\r\n    map.emplace(4, \"Fourth\");\r\n    map.emplace(5, \"Fifth\");\r\n    map.set(9, \"Nineth\");\r\n\r\n    for (const it of map)\r\n        console.log(it.first, it.second);\r\n\r\n    const it: std.TreeMap.Iterator<number, string> = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${it.first}, ${it.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](https://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ASTL](https://github.com/samchon/astl) - C++ STL for AssemblyScript\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n    - [Mutex-Server](https://github.com/samchon/mutex-server) - Critical sections in the network level\r\n","readmeFilename":"README.md","gitHead":"c643412ace1df19211e06ed8855cc0b941fb0c78","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-DNwVDC+dwom0zij7LZYGo2SFq3B8MUHE4yxuZsoW0kdH179WTFbZ8obxlOc+u3lYWq9u3GDildtDM1JELj1LBw==","shasum":"37e55bfdd2b3ada8e485e72fb204756b78388077","tarball":"https://registry.npmjs.org/tstl/-/tstl-3.0.0-dev.20240328-3.tgz","fileCount":1057,"unpackedSize":3192767,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFebMzKXdoK7V0v5qjxVElUjLmNivLu8kaWCab4bcSSwAiEAxWA/inwtEV56aOZdrDFhHTpJR5F1XCKHeok+oGyqWAY="}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_3.0.0-dev.20240328-3_1711564121180_0.3360260195986362"},"_hasShrinkwrap":false},"3.0.0-dev.20240328-4":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"3.0.0-dev.20240328-4","main":"./lib/index.js","typings":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","require":"./lib/index.js","import":"./lib/index.mjs"}},"scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","benchmark":"node benchmark","build":"rimraf lib && tsc && rollup -c","dev":"rimraf lib && tsc --watch","prettier":"prettier --write ./src","test":"node lib/test"},"devDependencies":{"@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.6","@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.7.1","rimraf":"^3.0.2","rollup":"^4.13.1","source-map-support":"^0.5.21","ts-node":"^10.7.0","tslib":"^2.6.2","typedoc":"^0.25.12","typescript":"^5.4.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"_id":"tstl@3.0.0-dev.20240328-4","readme":"# TypeScript Standard Template Library\r\n![tstl](https://user-images.githubusercontent.com/13158709/222362879-3da6c27f-8f73-4b1d-b63a-ec23ff51e71e.png)\r\n\r\n```bash\r\nnpm install --save tstl\r\n```\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](https://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque](https://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List](https://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList](https://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](https://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](https://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](https://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap](https://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](https://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](https://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet](https://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap](https://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](https://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](https://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack](https://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue](https://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](https://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError](https://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError](https://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](https://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://samchon.github.io/tstl/api/interfaces/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](https://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](https://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex](https://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex](https://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](https://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex](https://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](https://samchon.github.io/tstl/api/classes/std.semaphore.html)\r\n    - [Latch](https://samchon.github.io/tstl/api/classes/std.latch.html)\r\n    - [Barrier](https://samchon.github.io/tstl/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std from \"tstl\";\r\n\r\nfunction main(): void\r\n{\r\n    const map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    map.emplace(1, \"First\");\r\n    map.emplace(4, \"Fourth\");\r\n    map.emplace(5, \"Fifth\");\r\n    map.set(9, \"Nineth\");\r\n\r\n    for (const it of map)\r\n        console.log(it.first, it.second);\r\n\r\n    const it: std.TreeMap.Iterator<number, string> = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${it.first}, ${it.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](https://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ASTL](https://github.com/samchon/astl) - C++ STL for AssemblyScript\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n    - [Mutex-Server](https://github.com/samchon/mutex-server) - Critical sections in the network level\r\n","readmeFilename":"README.md","gitHead":"c643412ace1df19211e06ed8855cc0b941fb0c78","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-fYij5VQ2VgzswP/l1Yb4Fpav+IAxK9E8/RDgXoTw0VbtrTFtzE38JPs+EcutaUXjPSPDQAkE4Spl+4KkeZd74Q==","shasum":"74b7cfce79c790af625843a2273dd480b5188f97","tarball":"https://registry.npmjs.org/tstl/-/tstl-3.0.0-dev.20240328-4.tgz","fileCount":1057,"unpackedSize":3190338,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHtvl3ZJnIShi0qBlhhLYqlr1n5PveCmmUi+IRm58S6XAiEAxFUWmdRF5J5KLng0697XTwW89j7yctZv9hrWQP82iRc="}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_3.0.0-dev.20240328-4_1711569330241_0.4912580873627941"},"_hasShrinkwrap":false},"3.0.0-dev.20240328-5":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"3.0.0-dev.20240328-5","main":"./lib/index.js","typings":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","require":"./lib/index.js","import":"./lib/index.mjs"}},"scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","benchmark":"node benchmark","build":"rimraf lib && tsc && rollup -c","dev":"rimraf lib && tsc --watch","prettier":"prettier --write ./src","test":"node lib/test"},"devDependencies":{"@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.6","@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.7.1","rimraf":"^3.0.2","rollup":"^4.13.1","source-map-support":"^0.5.21","ts-node":"^10.7.0","tslib":"^2.6.2","typedoc":"^0.25.12","typescript":"^5.4.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"_id":"tstl@3.0.0-dev.20240328-5","readme":"# TypeScript Standard Template Library\r\n![tstl](https://user-images.githubusercontent.com/13158709/222362879-3da6c27f-8f73-4b1d-b63a-ec23ff51e71e.png)\r\n\r\n```bash\r\nnpm install --save tstl\r\n```\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](https://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque](https://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List](https://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList](https://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](https://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](https://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](https://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap](https://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](https://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](https://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet](https://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap](https://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](https://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](https://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack](https://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue](https://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](https://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError](https://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError](https://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](https://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://samchon.github.io/tstl/api/interfaces/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](https://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](https://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex](https://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex](https://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](https://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex](https://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](https://samchon.github.io/tstl/api/classes/std.semaphore.html)\r\n    - [Latch](https://samchon.github.io/tstl/api/classes/std.latch.html)\r\n    - [Barrier](https://samchon.github.io/tstl/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std from \"tstl\";\r\n\r\nfunction main(): void\r\n{\r\n    const map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    map.emplace(1, \"First\");\r\n    map.emplace(4, \"Fourth\");\r\n    map.emplace(5, \"Fifth\");\r\n    map.set(9, \"Nineth\");\r\n\r\n    for (const it of map)\r\n        console.log(it.first, it.second);\r\n\r\n    const it: std.TreeMap.Iterator<number, string> = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${it.first}, ${it.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](https://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ASTL](https://github.com/samchon/astl) - C++ STL for AssemblyScript\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n    - [Mutex-Server](https://github.com/samchon/mutex-server) - Critical sections in the network level\r\n","readmeFilename":"README.md","gitHead":"c643412ace1df19211e06ed8855cc0b941fb0c78","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-TsJaJPtkCTBtBW+Ko8xLSO82h8relgXNIIjFwCWVVa9bTh0HChmmmmYDRvwN/VdZ/E00oEbpDezcxXRw/GLMyg==","shasum":"fe4e973f82fa04696595c9330bccf817f98706e1","tarball":"https://registry.npmjs.org/tstl/-/tstl-3.0.0-dev.20240328-5.tgz","fileCount":849,"unpackedSize":2584042,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAF8RiIqiMpoFZNI29F7fY+pfKl27K3Fff95HqXB6csxAiEA9l/NamB1B6aZlZl9TMZ9vHMdrRdhzEAS20crcc7mQpQ="}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_3.0.0-dev.20240328-5_1711569411709_0.42504095136690867"},"_hasShrinkwrap":false},"3.0.0":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"3.0.0","main":"./lib/index.js","typings":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","require":"./lib/index.js","import":"./lib/index.mjs"}},"scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","benchmark":"node benchmark","build":"rimraf lib && tsc && rollup -c","dev":"rimraf lib && tsc --watch","prettier":"prettier --write ./src","test":"node lib/test"},"devDependencies":{"@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.6","@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.7.1","rimraf":"^3.0.2","rollup":"^4.13.1","source-map-support":"^0.5.21","ts-node":"^10.7.0","tslib":"^2.6.2","typedoc":"^0.25.12","typescript":"^5.4.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"_id":"tstl@3.0.0","gitHead":"c643412ace1df19211e06ed8855cc0b941fb0c78","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-pR83y6/tbJx6jeGRqGJXk2t/eCUynaHEE6zsOLB0Zga8ej61LXtPfoeiROdhezpoCT15+1QMbqKB1Um5kasSKg==","shasum":"7e84c3799652e4982911db0996c086f1e0903c40","tarball":"https://registry.npmjs.org/tstl/-/tstl-3.0.0.tgz","fileCount":849,"unpackedSize":2584027,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDi09OZCEb3jcculnGaFGKaFc5I/1OKpjY+DdDfZpR5OQIgVPPc+AKg5CoIbRVqRAvwLvaBaDH1eX4LYRECzM2Fjos="}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_3.0.0_1711569666610_0.6887289295783967"},"_hasShrinkwrap":false},"3.0.1-dev.20240330":{"name":"tstl","description":"TypeScript-STL (Standard Template Library, migrated from C++)","author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"version":"3.0.1-dev.20240330","main":"./lib/index.js","module":"./lib/index.mjs","typings":"./lib/index.d.ts","scripts":{"api":"typedoc src --exclude \"**/+(test|benchmark)/**\" --excludeNotDocumented --plugin typedoc-plugin-external-module-name --plugin typedoc-plugin-exclude-references --out ../tstl@gh-pages/api","benchmark":"node benchmark","build":"rimraf lib && tsc && rollup -c","dev":"rimraf lib && tsc --watch","prettier":"prettier --write ./src/**/*.ts","test":"node lib/test"},"devDependencies":{"@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.6","@trivago/prettier-plugin-sort-imports":"^4.3.0","@types/cli":"^0.11.19","@types/node":"^14.6.3","cli":"^1.0.1","prettier":"^2.8.8","rimraf":"^3.0.2","rollup":"^4.13.1","source-map-support":"^0.5.21","ts-node":"^10.7.0","tslib":"^2.6.2","typedoc":"^0.25.12","typescript":"^5.4.3"},"homepage":"https://github.com/samchon/tstl","repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"license":"MIT","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"_id":"tstl@3.0.1-dev.20240330","readme":"# TypeScript Standard Template Library\r\n![tstl](https://user-images.githubusercontent.com/13158709/222362879-3da6c27f-8f73-4b1d-b63a-ec23ff51e71e.png)\r\n\r\n```bash\r\nnpm install --save tstl\r\n```\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/tstl/blob/master/LICENSE)\r\n[![npm version](https://badge.fury.io/js/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Downloads](https://img.shields.io/npm/dm/tstl.svg)](https://www.npmjs.com/package/tstl)\r\n[![Build Status](https://github.com/samchon/tstl/workflows/build/badge.svg)](https://github.com/samchon/tstl/actions?query=workflow%3Abuild)\r\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsamchon%2Ftstl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsamchon%2Ftstl?ref=badge_shield)\r\n[![Chat on Gitter](https://badges.gitter.im/samchon/tstl.svg)](https://gitter.im/samchon/tstl?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nImplementation of STL (Standard Template Library) in TypeScript.\r\n  - Containers\r\n  - Iterators\r\n  - Algorithms\r\n  - Functors\r\n\r\n**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.\r\n\r\nBelow components are list of provided objects in the **TSTL**. If you want to know more about the **TSTL**, then please read the [**Guide Documents**](https://github.com/samchon/tstl/wiki).\r\n\r\n\r\n\r\n\r\n## Features\r\n### Containers\r\n  - **Linear Containers**\r\n    - [Vector](https://samchon.github.io/tstl/api/classes/std.vector.html)\r\n    - [Deque](https://samchon.github.io/tstl/api/classes/std.deque.html)\r\n    - [List](https://samchon.github.io/tstl/api/classes/std.list.html)\r\n    - [ForwardList](https://samchon.github.io/tstl/api/classes/std.forwardlist.html)\r\n    - [VectorBoolean](https://samchon.github.io/tstl/api/classes/std.vectorboolean.html)\r\n  - **Associative Containers**\r\n    - *Tree-structured Containers*\r\n      - [TreeSet](https://samchon.github.io/tstl/api/classes/std.treeset.html)\r\n      - [TreeMultiSet](https://samchon.github.io/tstl/api/classes/std.treemultiset.html)\r\n      - [TreeMap](https://samchon.github.io/tstl/api/classes/std.treemap.html)\r\n      - [TreeMultiMap](https://samchon.github.io/tstl/api/classes/std.treemultimap.html)\r\n    - *Hash-buckets based Container*\r\n      - [HashSet](https://samchon.github.io/tstl/api/classes/std.hashset.html)\r\n      - [HashMultiSet](https://samchon.github.io/tstl/api/classes/std.hashmultiset.html)\r\n      - [HashMap](https://samchon.github.io/tstl/api/classes/std.hashmap.html)\r\n      - [HashMultiMap](https://samchon.github.io/tstl/api/classes/std.hashmultimap.html)\r\n  - **Adaptor Containers**\r\n    - *Linear Adaptors*\r\n      - [Queue](https://samchon.github.io/tstl/api/classes/std.queue.html)\r\n      - [Stack](https://samchon.github.io/tstl/api/classes/std.stack.html)\r\n      - [PriorityQueue](https://samchon.github.io/tstl/api/classes/std.priorityqueue.html)\r\n    - Associative Adaptors\r\n      - (experimental) [FlatSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatset.html)\r\n      - (experimental) [FlatMultiSet](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultiset.html)\r\n      - (experimental) [FlatMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmap.html)\r\n      - (experimental) [FlatMultiMap](https://samchon.github.io/tstl/api/classes/std_experimental.flatmultimap.html)\r\n\r\n### Algorithms\r\n- [`<algorithm>`](http://www.cplusplus.com/reference/algorithm/)\r\n    - [iterations](https://github.com/samchon/tstl/blob/master/src/algorithm/iterations.ts)\r\n    - [modifiers](https://github.com/samchon/tstl/blob/master/src/algorithm/modifiers.ts)\r\n    - [partitions](https://github.com/samchon/tstl/blob/master/src/algorithm/partitions.ts)\r\n    - [sortings](https://github.com/samchon/tstl/blob/master/src/algorithm/sortings.ts)\r\n    - [binary searches](https://github.com/samchon/tstl/blob/master/src/algorithm/binary_searches.ts)\r\n    - [union sets](https://github.com/samchon/tstl/blob/master/src/algorithm/union_sets.ts)\r\n    - [heaps](https://github.com/samchon/tstl/blob/master/src/algorithm/heaps.ts)\r\n    - [mathematics](https://github.com/samchon/tstl/blob/master/src/algorithm/mathematics.ts)\r\n\r\n### Functors\r\n  - [`<exception>`](http://www.cplusplus.com/reference/exception/)\r\n    - [Exception](https://samchon.github.io/tstl/api/classes/std.exception.html)\r\n      - [LogicError](https://samchon.github.io/tstl/api/classes/std.logicerror.html)\r\n      - [RuntimeError](https://samchon.github.io/tstl/api/classes/std.runtimeerror.html)\r\n  - [`<functional>`](http://www.cplusplus.com/reference/functional/)\r\n    - [IComparable](https://samchon.github.io/tstl/api/interfaces/std.icomparable.html)\r\n    - [IPointer](https://samchon.github.io/tstl/api/interfaces/std.ipointer.html)\r\n  - [`<utility>`](http://www.cplusplus.com/reference/utility/)\r\n    - [Pair](https://samchon.github.io/tstl/api/classes/std.pair.html)\r\n  - [`<numeric>`](http://en.cppreference.com/w/cpp/numeric)\r\n    - [IComputable](https://github.com/samchon/tstl/blob/master/src/numeric/IComputable.ts)\r\n    - [operations](https://github.com/samchon/tstl/blob/master/src/numeric/operations.ts)\r\n    - [special math](http://en.cppreference.com/w/cpp/numeric/special_math)\r\n  - [`<thread>`](https://github.com/samchon/tstl/blob/master/src/thread.ts)\r\n    - [ConditionVariable](https://samchon.github.io/tstl/api/classes/std.conditionvariable.html)\r\n    - [Mutex](https://samchon.github.io/tstl/api/classes/std.mutex.html) & [TimedMutex](https://samchon.github.io/tstl/api/classes/std.timedmutex.html)\r\n    - [SharedMutex](https://samchon.github.io/tstl/api/classes/std.sharedmutex.html) & [SharedTimeMutex](https://samchon.github.io/tstl/api/classes/std.sharedtimedmutex.html)\r\n    - [Semaphore](https://samchon.github.io/tstl/api/classes/std.semaphore.html)\r\n    - [Latch](https://samchon.github.io/tstl/api/classes/std.latch.html)\r\n    - [Barrier](https://samchon.github.io/tstl/api/classes/std.barrier.html)\r\n\r\n\r\n\r\n\r\n## Installation\r\n### NPM Module\r\nInstalling **TSTL** in *NodeJS* is very easy. Just install with the `npm`\r\n\r\n```bash\r\n# Install TSTL from the NPM module\r\nnpm install --save tstl\r\n```\r\n\r\n### Usage\r\n``` typescript\r\nimport std from \"tstl\";\r\n\r\nfunction main(): void\r\n{\r\n    const map: std.TreeMap<number, string> = new std.TreeMap();\r\n\r\n    map.emplace(1, \"First\");\r\n    map.emplace(4, \"Fourth\");\r\n    map.emplace(5, \"Fifth\");\r\n    map.set(9, \"Nineth\");\r\n\r\n    for (const it of map)\r\n        console.log(it.first, it.second);\r\n\r\n    const it: std.TreeMap.Iterator<number, string> = map.lower_bound(3);\r\n    console.log(`lower bound of 3 is: ${it.first}, ${it.second}`);\r\n}\r\nmain();\r\n```\r\n\r\n\r\n\r\n\r\n## Appendix\r\n  - **Repositories**\r\n    - [GitHub Repository](https://github.com/samchon/tstl)\r\n    - [NPM Repository](https://www.npmjs.com/package/tstl)\r\n  - **Documents**\r\n    - [**Guide Documents**](https://github.com/samchon/tstl/wiki)\r\n    - [API Documents](https://samchon.github.io/tstl/api)\r\n    - [Release Notes](https://github.com/samchon/tstl/releases)\r\n  - **Extensions**\r\n    - [ASTL](https://github.com/samchon/astl) - C++ STL for AssemblyScript\r\n    - [ECol](https://github.com/samchon/ecol) - Collections dispatching events\r\n    - [**TGrid**](https://github.com/samchon/tgrid) - Network & Thread extension\r\n    - [Mutex-Server](https://github.com/samchon/mutex-server) - Critical sections in the network level\r\n","readmeFilename":"README.md","gitHead":"d17ed948fefc598e0191734316b4754805729f23","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-4FBa5JxWGVdzxivS186TBfFmc6HC53U5u8mR/Ud5Wyd7tZMaMc1NerQblot2MLSyzotDjOBp/iLDahLad5voYA==","shasum":"902607366787f54df76c5259268997acc22b3546","tarball":"https://registry.npmjs.org/tstl/-/tstl-3.0.1-dev.20240330.tgz","fileCount":849,"unpackedSize":2533726,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmJQm6+/S2KQ1/Ibm/1n7Uex6aifxjQ8MSei4hWM2oPwIhAITfU86KQ5jIDhNM+K5xySzno4XB+zRBtGr/oTQTmvW8"}]},"_npmUser":{"name":"samchon","email":"samchon.github@gmail.com"},"directories":{},"maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tstl_3.0.1-dev.20240330_1711770780290_0.9289194253789446"},"_hasShrinkwrap":false}},"readme":"","maintainers":[{"name":"samchon","email":"samchon.github@gmail.com"}],"time":{"modified":"2024-03-30T03:53:00.769Z","created":"2016-10-27T04:38:02.919Z","0.0.0":"2016-10-27T04:38:02.919Z","1.3.0":"2016-12-19T09:21:47.627Z","1.3.1":"2016-12-20T02:59:36.171Z","1.3.2":"2016-12-23T08:30:06.009Z","1.3.3":"2016-12-26T15:08:33.842Z","1.3.4":"2016-12-30T08:07:17.502Z","1.3.5":"2016-12-30T11:25:32.918Z","1.3.6":"2017-01-03T02:13:32.354Z","1.3.7":"2017-01-07T07:59:28.893Z","1.3.8":"2017-01-14T16:48:52.449Z","1.3.9":"2017-01-22T08:42:35.464Z","1.3.10":"2017-02-04T12:57:35.288Z","1.3.11":"2017-02-18T15:06:02.893Z","1.3.12":"2017-02-20T01:20:22.582Z","1.3.13":"2017-02-20T01:25:02.345Z","1.3.14":"2017-02-20T03:39:49.749Z","1.4.0":"2017-02-20T03:54:03.580Z","1.4.1":"2017-02-20T16:30:46.520Z","1.4.2":"2017-03-12T14:47:19.765Z","1.4.3":"2017-03-12T15:00:28.671Z","1.4.4":"2017-03-31T20:31:12.454Z","1.4.5":"2017-04-01T04:19:34.703Z","1.4.6":"2017-04-13T15:36:40.680Z","1.5.0-dev.20170416":"2017-04-15T19:26:02.953Z","1.5.0-dev.20170416-2":"2017-04-15T20:12:38.016Z","1.5.0-dev.20170416-3":"2017-04-16T07:22:55.102Z","1.4.7":"2017-04-16T16:05:03.265Z","1.4.8":"2017-04-16T16:19:36.382Z","1.4.9":"2017-04-23T06:50:36.603Z","1.4.10":"2017-04-29T13:53:25.084Z","1.4.11":"2017-04-30T15:45:00.446Z","1.5.0":"2017-07-09T16:25:35.238Z","1.5.1":"2017-07-10T15:04:42.318Z","1.5.2":"2017-07-16T05:00:49.962Z","1.5.3":"2017-07-16T08:52:48.655Z","1.5.4":"2017-07-29T17:40:14.636Z","1.5.5":"2017-08-09T15:25:39.623Z","1.5.6":"2017-08-13T09:17:26.255Z","1.5.7":"2017-08-15T17:39:05.494Z","1.5.8":"2017-08-20T14:32:19.575Z","1.5.9":"2017-08-23T08:49:30.984Z","1.6.0-dev.20171011":"2017-10-11T06:36:55.625Z","1.6.0-dev.20171011-2":"2017-10-11T06:40:20.889Z","1.6.0-dev.20171013":"2017-10-13T01:24:28.079Z","1.6.0-dev.20171014":"2017-10-14T14:48:03.072Z","1.6.0-dev.20171017":"2017-10-17T07:46:50.158Z","1.6.0-dev.20171019":"2017-10-19T00:40:55.080Z","1.6.0-dev.20171022":"2017-10-22T14:00:25.393Z","1.6.0-dev.20171026":"2017-10-26T09:38:38.376Z","1.6.0-dev.20171027":"2017-10-27T05:57:21.773Z","1.6.0-dev.20171028":"2017-10-27T17:42:42.893Z","1.6.0-dev.20171028-2":"2017-10-28T14:29:41.648Z","1.6.0-dev.20171029":"2017-10-29T14:55:50.172Z","1.6.0-dev.20171030":"2017-10-29T15:09:55.496Z","1.6.0-dev.20171031":"2017-10-30T23:39:44.595Z","1.5.10":"2017-11-01T01:54:08.686Z","1.6.0-dev.20171102":"2017-11-02T00:36:41.954Z","1.6.0-dev.20171103":"2017-11-03T01:12:37.178Z","1.6.0":"2017-11-03T01:16:49.881Z","1.6.1-dev.20171105":"2017-11-05T00:50:25.053Z","1.6.1-dev.20171106":"2017-11-06T12:19:13.484Z","1.6.1-dev.20171108":"2017-11-08T14:20:13.549Z","1.6.1-dev.20171109":"2017-11-09T08:12:18.712Z","1.6.1-dev.20171109-2":"2017-11-09T08:32:21.053Z","1.6.1-dev.20171112":"2017-11-12T10:04:16.014Z","1.6.1-dev.20171113":"2017-11-13T03:33:13.468Z","1.6.1":"2017-11-13T04:04:24.745Z","1.6.2":"2017-11-13T04:12:42.745Z","1.6.3-dev.20171122":"2017-11-22T06:33:43.684Z","1.6.3-dev.20171123":"2017-11-23T02:53:16.002Z","1.6.3":"2017-11-24T04:03:12.699Z","1.6.4":"2017-12-07T05:00:05.678Z","1.6.5-dev.20170117":"2018-01-17T01:00:53.748Z","1.6.5":"2018-01-17T01:16:32.772Z","1.6.6":"2018-01-17T04:59:48.437Z","1.7.0-dev.20180123":"2018-01-23T05:19:31.253Z","1.6.7":"2018-01-23T05:40:42.174Z","1.7.0-dev.20180125":"2018-01-25T00:43:08.343Z","1.6.8":"2018-01-25T13:43:19.220Z","1.7.0-dev.20180126":"2018-01-25T15:16:04.620Z","1.6.9":"2018-01-26T05:55:43.867Z","1.7.0-dev.20180127":"2018-01-26T13:08:34.241Z","1.7.0-dev.20180129":"2018-01-29T07:18:01.764Z","1.6.10-dev.20180201":"2018-02-01T06:13:34.119Z","1.6.10":"2018-02-01T06:20:15.591Z","1.6.11":"2018-02-05T10:43:01.197Z","1.7.0-dev.20180212":"2018-02-12T08:22:11.854Z","1.7.0-dev.20180218":"2018-02-18T10:05:17.649Z","1.7.0-dev.20180219":"2018-02-18T15:41:09.308Z","1.7.0-dev.20180220":"2018-02-19T15:21:19.677Z","1.7.0-dev.20180221":"2018-02-20T15:20:25.581Z","1.7.0-dev.20180222":"2018-02-21T15:15:01.456Z","1.7.0-dev.20180223":"2018-02-23T08:16:05.986Z","1.7.0-dev.20180224":"2018-02-23T15:08:31.765Z","1.7.0-dev.20180224-2":"2018-02-23T15:58:43.493Z","1.7.0-dev.20180225":"2018-02-24T14:51:55.321Z","1.7.0-dev.20180265":"2018-02-25T15:33:11.312Z","1.7.0-dev.20180227":"2018-02-26T14:38:19.689Z","1.7.0-dev.20180228":"2018-02-27T16:01:38.732Z","1.7.0-dev.20180301":"2018-02-28T17:54:15.974Z","1.7.0-dev.20180302":"2018-02-28T19:12:38.907Z","1.7.0":"2018-03-01T14:16:15.864Z","1.7.1-dev.20180305":"2018-03-05T02:55:00.376Z","1.7.1":"2018-03-05T03:53:08.372Z","1.7.1-dev.20180306":"2018-03-06T08:30:58.593Z","1.7.2-dev.20180307":"2018-03-07T01:46:36.553Z","1.7.2":"2018-03-07T02:43:12.091Z","1.7.3":"2018-03-07T04:01:09.734Z","1.7.4-dev.20180308":"2018-03-08T09:06:59.241Z","1.7.4-dev.20180309":"2018-03-09T03:06:52.713Z","1.7.4-dev.20180309-2":"2018-03-09T03:51:25.168Z","1.7.4":"2018-03-09T04:19:04.727Z","1.7.5":"2018-03-09T13:25:07.672Z","1.7.6":"2018-03-09T18:04:32.599Z","1.7.7-dev.20180310":"2018-03-10T04:45:51.146Z","1.7.7":"2018-03-10T06:28:15.791Z","1.8.0-dev.20180311":"2018-03-10T20:20:32.991Z","1.7.8":"2018-03-10T20:33:57.548Z","1.8.0-dev.20180311-2":"2018-03-10T22:01:15.522Z","1.8.0-dev.20180311-3":"2018-03-11T05:53:36.996Z","1.7.9":"2018-03-11T09:31:16.673Z","1.7.10-dev.20180315":"2018-03-15T01:23:55.116Z","1.7.10-dev.20180315-2":"2018-03-15T01:31:28.617Z","1.8.0-dev.20180315-2":"2018-03-15T02:52:14.042Z","1.7.10-dev.20180317":"2018-03-17T06:08:20.196Z","1.7.10-dev.20180317-2":"2018-03-17T10:04:38.268Z","1.7.10-dev.20180318":"2018-03-17T17:54:03.962Z","1.7.10-dev.20180319":"2018-03-18T14:25:49.025Z","1.7.10-dev.20180320":"2018-03-19T14:52:05.701Z","1.7.10-dev.20180321":"2018-03-20T16:21:16.863Z","1.7.10-dev.20180322":"2018-03-22T02:20:33.827Z","1.7.10":"2018-03-22T02:36:31.000Z","1.8.0-dev.20180323":"2018-03-23T07:03:26.136Z","1.8.0-dev.20180324":"2018-03-24T10:08:18.759Z","1.8.0-dev.20180324-2":"2018-03-24T12:34:55.305Z","1.8.0-dev.20180325":"2018-03-25T13:57:53.694Z","1.8.0-dev.20180328":"2018-03-28T02:11:25.168Z","1.8.0-dev.20180330":"2018-03-30T11:35:03.152Z","1.8.0-dev.20180402":"2018-04-02T05:51:50.923Z","1.8.0-dev.20180403":"2018-04-03T08:13:24.715Z","1.8.0-dev.20180406":"2018-04-06T06:35:24.470Z","1.8.0-dev.20180407":"2018-04-07T13:51:36.777Z","1.8.0-dev.20180408":"2018-04-08T15:29:57.329Z","1.7.11-dev.20180409":"2018-04-10T00:08:44.244Z","1.8.0-dev.20180410":"2018-04-10T13:12:09.947Z","1.7.11":"2018-04-12T05:15:20.369Z","1.8.0-dev.20180524":"2018-05-23T15:13:25.209Z","1.8.0-dev.20180524-2":"2018-05-23T15:18:15.230Z","1.8.0-dev.20180524-3":"2018-05-23T15:35:35.064Z","1.8.0":"2018-05-23T15:37:15.011Z","1.8.1-dev.20180525":"2018-05-25T02:19:52.931Z","1.8.1-dev.20180525-2":"2018-05-25T04:46:04.713Z","1.8.1-dev.20180525-3":"2018-05-25T05:59:41.571Z","1.8.1":"2018-05-25T06:14:03.645Z","1.8.2-dev.20180527":"2018-05-27T14:28:01.069Z","1.8.2":"2018-05-27T14:33:15.740Z","2.0.0-dev.20180603":"2018-06-02T21:22:18.022Z","2.0.0-dev.20180608":"2018-06-08T08:17:48.683Z","2.0.0-dev.20180612":"2018-06-12T04:10:18.676Z","2.0.0-dev.20180613":"2018-06-12T08:19:31.083Z","2.0.0-dev.20180614":"2018-06-14T02:18:51.656Z","2.0.0":"2018-06-19T05:11:38.291Z","2.0.1":"2018-06-19T08:16:22.218Z","2.0.2":"2018-06-26T00:47:13.064Z","2.0.3":"2018-07-29T08:06:43.427Z","2.0.4-dev.20180822":"2018-08-22T04:13:48.727Z","2.0.4-dev.20180823":"2018-08-23T04:21:27.465Z","2.0.4-dev.20180823-2":"2018-08-23T04:23:16.464Z","2.1.0-dev.20180824":"2018-08-24T07:25:22.966Z","2.1.0-dev.20180824-2":"2018-08-24T07:45:25.473Z","2.1.0-dev.20180824-3":"2018-08-24T07:48:19.279Z","2.1.0-dev.20180826":"2018-08-26T07:32:41.819Z","2.1.0-dev.20180826-2":"2018-08-26T12:43:16.243Z","2.1.0-dev.20180827":"2018-08-27T00:25:22.527Z","2.0.4-dev.20180827":"2018-08-28T01:10:20.400Z","2.0.4":"2018-08-28T03:46:38.492Z","2.1.0-dev.20180828":"2018-08-28T05:46:47.737Z","2.0.5-dev.20180829":"2018-08-29T00:53:41.936Z","2.0.5-dev.20180830":"2018-08-30T02:39:21.816Z","2.1.0-dev.20180831":"2018-08-31T02:32:40.565Z","2.0.5-dev.20180903":"2018-09-03T04:55:46.913Z","2.0.5-dev.20180908":"2018-09-07T17:51:51.414Z","2.1.0-dev.20180908":"2018-09-07T17:55:02.221Z","2.0.5":"2018-09-07T17:59:48.015Z","2.1.0-dev.20180927":"2018-09-27T05:16:32.607Z","2.0.6":"2018-10-01T16:32:23.288Z","2.1.0-dev.20181002":"2018-10-01T16:40:50.660Z","2.0.7":"2018-10-11T11:21:45.450Z","2.1.0-dev.20181011":"2018-10-11T11:24:26.578Z","2.1.0-dev.20181021":"2018-10-21T02:31:24.678Z","2.0.8":"2018-10-24T01:32:59.481Z","2.1.0-dev.20181024":"2018-10-24T12:57:13.214Z","2.0.9":"2018-10-30T04:30:35.759Z","2.1.0-dev.20181031":"2018-10-31T14:56:35.831Z","2.0.10":"2018-11-01T04:15:41.541Z","2.1.0-dev.20181101":"2018-11-01T05:52:29.433Z","2.1.0-dev.20181102":"2018-11-02T12:46:54.499Z","2.1.0-dev.20181107":"2018-11-07T12:31:10.832Z","2.1.0-dev.20181108":"2018-11-08T08:48:43.366Z","2.1.0-dev.20181108-2":"2018-11-08T09:03:12.146Z","2.1.0-dev.20181109":"2018-11-09T06:51:02.343Z","2.1.0-dev.20181110":"2018-11-10T05:40:48.085Z","2.1.0-dev.20181112":"2018-11-12T06:52:12.063Z","2.1.0-dev.20181113":"2018-11-13T08:25:55.585Z","2.0.11":"2018-11-13T08:56:02.342Z","2.0.12":"2018-11-13T08:56:42.101Z","2.0.13":"2018-11-13T14:39:04.663Z","2.1.0-dev.20181114":"2018-11-14T02:05:47.832Z","2.1.0-dev.20181116":"2018-11-16T02:48:42.084Z","2.1.0-dev.20181122":"2018-11-21T12:03:11.783Z","2.0.14":"2018-11-28T06:19:06.749Z","2.1.0-dev.20181128":"2018-11-28T11:26:40.590Z","2.1.0-dev.20181129":"2018-11-29T12:03:36.598Z","2.1.0-dev.20181202":"2018-12-02T10:19:23.582Z","2.1.0-dev.20181207":"2018-12-07T14:53:47.345Z","2.1.0-dev.20181210":"2018-12-10T02:52:22.013Z","2.0.15":"2018-12-10T04:10:51.050Z","2.0.16":"2018-12-10T06:30:15.290Z","2.1.0-dev.20181211":"2018-12-11T06:36:55.363Z","2.1.0-dev.20181212":"2018-12-11T07:15:19.017Z","2.1.0-dev.20181213":"2018-12-12T05:28:31.530Z","2.1.0-dev.20181214":"2018-12-14T14:24:07.848Z","2.1.0-dev.20181215":"2018-12-15T04:09:55.824Z","2.1.0":"2018-12-15T04:10:11.715Z","2.1.1":"2018-12-20T07:56:09.584Z","2.1.2-dev.20190122":"2019-01-22T06:18:07.486Z","2.1.2-dev.20190207":"2019-02-07T07:52:47.116Z","2.1.2-dev.20190208":"2019-02-08T06:21:21.351Z","2.1.2-dev.20190211":"2019-02-11T04:53:31.618Z","2.1.2":"2019-02-12T02:02:57.213Z","2.2.0-dev.20190303":"2019-03-03T14:05:15.282Z","2.2.0-dev.20190309":"2019-03-09T08:13:56.626Z","2.2.0-dev.20190311":"2019-03-10T15:26:08.439Z","2.2.0-dev.20190330":"2019-03-30T14:17:04.236Z","2.2.0-dev.20190405":"2019-04-05T15:26:36.243Z","2.2.0-dev.20190406":"2019-04-06T06:39:46.218Z","2.2.0-dev.20190407":"2019-04-07T14:42:35.328Z","2.1.3":"2019-05-03T04:52:36.268Z","2.2.0-dev.20190503":"2019-05-03T08:49:17.968Z","2.2.0-dev.20190507":"2019-05-07T02:05:30.908Z","2.2.0-dev.20190508":"2019-05-07T04:53:16.630Z","2.1.4":"2019-05-09T15:22:14.188Z","2.2.0-dev.20190510":"2019-05-09T15:30:10.487Z","2.2.0-dev.20190513":"2019-05-12T15:34:39.855Z","2.2.0-dev.20190517":"2019-05-18T09:57:47.587Z","2.2.0-dev.20190522":"2019-05-22T04:58:37.428Z","2.2.0-dev.20190523":"2019-05-22T09:01:51.024Z","2.2.0-dev.20190524":"2019-05-23T04:22:49.329Z","2.2.0-dev.20190614":"2019-06-14T06:29:39.866Z","2.2.0-dev.20190615":"2019-06-14T12:33:40.850Z","2.1.5":"2019-06-14T12:45:10.274Z","2.1.6":"2019-06-14T13:37:47.222Z","2.2.0":"2019-06-14T13:39:30.850Z","2.2.1-dev.20160617":"2019-06-17T14:40:24.922Z","2.2.1-dev.20190617":"2019-06-17T14:40:59.974Z","2.2.1-dev.20190623":"2019-06-23T14:03:36.835Z","2.2.1-dev.20190706":"2019-07-06T13:37:34.997Z","2.2.1-dev.20190711":"2019-07-11T01:02:08.624Z","2.2.1-dev.20190712":"2019-07-12T02:39:43.096Z","2.2.1":"2019-07-14T09:49:53.416Z","2.2.2-dev.20190717":"2019-07-17T08:14:00.206Z","2.2.2-dev.20190720":"2019-07-20T12:15:40.141Z","2.2.2-dev.20190724":"2019-07-24T08:36:01.288Z","2.2.2-dev.20190725":"2019-07-25T02:14:31.022Z","2.2.2":"2019-07-28T05:44:30.193Z","2.2.3":"2019-07-28T05:46:43.551Z","2.2.4-dev.20190811":"2019-08-11T14:10:52.697Z","2.3.0-dev.20190811":"2019-08-11T14:21:18.985Z","2.3.0-dev.20190817":"2019-08-17T14:26:44.211Z","2.3.0-dev.20190831":"2019-08-31T14:51:36.001Z","2.3.0":"2019-09-28T03:50:14.543Z","2.3.1-dev.20191024":"2019-10-25T00:11:45.629Z","2.3.1-dev.20191025":"2019-10-25T01:17:22.979Z","2.3.1-dev.20191106":"2019-11-06T14:31:34.979Z","2.4.0-dev.20191122":"2019-11-21T14:51:54.669Z","2.4.0-dev.20191124":"2019-11-23T17:06:18.289Z","2.4.0-dev.20191125":"2019-11-24T15:11:11.434Z","2.4.0-dev.20191126":"2019-11-25T12:43:43.526Z","2.4.0-dev.20191127":"2019-11-27T12:49:20.188Z","2.4.0-dev.20191129":"2019-11-28T15:14:42.528Z","2.4.0-dev.20191130":"2019-11-30T08:36:44.227Z","2.4.0-dev.20191202":"2019-12-02T08:56:39.881Z","2.4.0-dev.20191210":"2019-12-10T08:12:09.551Z","2.4.0-dev.20191211":"2019-12-10T15:07:03.056Z","2.4.0-dev.20191212":"2019-12-11T17:56:36.373Z","2.3.1-dev.20191212":"2019-12-12T11:11:31.793Z","2.3.1-dev.20191213":"2019-12-12T11:13:11.192Z","2.4.0-dev.20191213":"2019-12-12T15:19:49.048Z","2.3.1":"2019-12-14T14:38:35.053Z","2.4.0-dev.20191219":"2019-12-19T15:59:52.277Z","2.4.0-dev.20191220":"2019-12-21T12:10:39.220Z","2.4.0-dev.20191223":"2019-12-23T13:53:54.319Z","2.4.0-dev.20191224":"2019-12-24T15:20:03.925Z","2.4.0-dev.20191225":"2019-12-25T15:03:46.856Z","2.4.0-dev.20191226":"2019-12-26T13:29:50.700Z","2.4.0-dev.20191227":"2019-12-27T13:55:27.689Z","2.4.0-dev.20191228":"2019-12-28T14:59:07.278Z","2.4.0-dev.20191230":"2019-12-30T15:32:21.231Z","2.4.0-dev.20191231":"2019-12-31T15:53:17.007Z","2.4.0-dev.20200103":"2020-01-03T18:12:36.769Z","2.4.0-dev.20200104":"2020-01-04T14:27:32.739Z","2.4.0-dev.20200105":"2020-01-05T14:57:43.405Z","2.4.0":"2020-01-06T05:36:40.754Z","2.4.1-dev.20200222":"2020-02-22T04:08:44.917Z","2.4.1-dev.20200222-2":"2020-02-22T04:11:19.189Z","2.4.1":"2020-02-22T04:41:43.980Z","2.4.2-dev.20200301":"2020-03-01T02:14:11.535Z","2.4.2":"2020-03-08T04:57:30.247Z","2.4.3":"2020-04-12T10:51:24.495Z","2.4.3-dev.20200412":"2020-04-12T11:46:28.034Z","2.4.4-dev.20200412":"2020-04-12T11:47:17.892Z","2.4.5":"2020-04-12T12:05:39.051Z","2.4.6":"2020-04-17T01:01:13.201Z","3.0.0-dev.20200510":"2020-05-10T07:33:35.965Z","3.0.0-dev.20200511":"2020-05-11T01:45:32.501Z","2.4.7":"2020-05-27T00:26:57.751Z","2.4.8":"2020-06-07T10:28:12.669Z","2.4.9":"2020-06-21T14:51:51.244Z","2.4.10-dev.20200627":"2020-06-27T13:06:46.298Z","2.4.10":"2020-06-27T13:20:29.400Z","2.4.11-dev.20200703":"2020-07-03T14:35:24.377Z","2.4.11":"2020-07-04T19:03:34.884Z","2.4.12":"2020-10-24T15:47:08.153Z","3.0.0-dev.20201115":"2020-11-15T13:06:00.865Z","3.0.0-dev.20201116":"2020-11-15T15:02:35.858Z","3.0.0-dev.20201227":"2020-12-28T15:28:20.889Z","2.4.13":"2021-01-10T13:00:31.274Z","2.4.14":"2021-01-10T13:06:43.708Z","2.4.15":"2021-03-12T02:56:29.872Z","2.4.16":"2021-03-12T03:00:27.963Z","2.4.17":"2021-05-12T04:41:04.593Z","2.4.19":"2021-05-12T07:51:56.125Z","2.4.20":"2021-05-12T08:19:05.629Z","2.4.21":"2021-05-17T06:48:31.761Z","2.4.22":"2021-08-26T15:11:53.007Z","2.5.0":"2021-09-11T12:00:21.756Z","2.5.1":"2021-12-08T14:20:39.493Z","2.5.2":"2021-12-31T15:00:56.850Z","2.5.3":"2022-03-12T14:53:40.901Z","2.5.4":"2022-04-26T14:34:00.250Z","2.5.5":"2022-04-26T15:02:55.477Z","2.5.6":"2022-04-27T16:41:11.735Z","2.5.7":"2022-07-13T01:27:54.846Z","2.5.8":"2022-07-26T02:12:49.867Z","2.5.9-dev.20221009":"2022-10-09T08:15:08.281Z","2.5.9":"2022-10-09T08:33:15.396Z","2.5.10-dev.20221009":"2022-10-09T23:12:19.755Z","2.5.10-dev.20221010-2":"2022-10-10T00:22:13.626Z","2.5.10":"2022-10-10T00:46:55.894Z","2.5.11-dev.20221010":"2022-10-10T00:48:57.538Z","2.5.11-dev.20221010-2":"2022-10-10T01:49:39.627Z","2.5.11":"2022-10-10T01:59:14.093Z","2.5.12":"2022-10-10T02:24:17.101Z","2.5.13":"2022-11-06T15:07:51.205Z","2.5.14":"2024-03-27T03:05:37.781Z","2.5.15":"2024-03-27T03:14:51.119Z","2.5.16":"2024-03-27T04:31:55.369Z","3.0.0-dev.20240328":"2024-03-27T17:49:23.982Z","3.0.0-dev.20240328-2":"2024-03-27T17:51:33.406Z","3.0.0-dev.20240328-3":"2024-03-27T18:28:41.559Z","3.0.0-dev.20240328-4":"2024-03-27T19:55:30.522Z","3.0.0-dev.20240328-5":"2024-03-27T19:56:52.018Z","3.0.0":"2024-03-27T20:01:06.909Z","3.0.1-dev.20240330":"2024-03-30T03:53:00.599Z"},"homepage":"https://github.com/samchon/tstl","keywords":["tstl","typecript","c++","cpp","stl","standard template library","algorithm","container","exception","functional","iterator","numeric","ranges","thread","utility","base","experimental","internal","Vector","Deque","List","VectorBoolean","ForwardList","Stack","Queue","PriorityQueue","FlatMap","FlatMultiMap","FlatMultiSet","FlatSet","HashMap","HashMultiMap","HashMultiSet","HashSet","TreeMap","TreeMultiMap","TreeMultiSet","TreeSet","ConditionVariable","Semaphore","Latch","Barrier","FlexBarrier","Mutex","TimedMutex","SharedMutex","SharedTimedMutex","SharedLock","UniqueLock","Singleton"],"repository":{"type":"git","url":"git+https://github.com/samchon/tstl.git"},"author":{"name":"Jeongho Nam","email":"samchon.github@gmail.com","url":"https://github.com/samchon"},"bugs":{"url":"https://github.com/samchon/tstl/issues"},"readmeFilename":"","users":{"samchon":true},"license":"MIT"}