历时大半年,[email protected] 终于横空出世!方便的朋友可以伸出小手点个 star 哦~
github 链接: https://github.com/ZLY201/js-sdsl npm 链接: https://www.npmjs.com/package/js-sdsl
一款参考 C++ STL 的 javascript 标准数据结构库,英文名 javascript standard data structure library
内含使用 RB-tree 实现的 Set ,Map 以及哈希表等多种数据结构,拥有极度完整的单元测试和性能测试以及完整的 api 文档
支持 CommonJS 和 ES modules ,同时支持浏览器 script 标签引入,采用 typescript 编写,具有严谨的类型推导,开发事半功倍
如果您有任何想法或发现任何漏洞,欢迎提交 merge request 或者联系本人,我们会将您的信息放置到贡献者列表,并在首页显示
以下是中文 readme
一个以 C++ STL 为基准实现的 JS 库
直接下载
或者使用 npm
npm install js-sdsl
为了帮助您使用,我们提供了完整的 API 文档
<!-- you can download the file locally and import it or import it dynamically by using url. -->
<script src="https://zly201.github.io/js-sdsl/js-sdsl.min.js"></script>
<script>
const { Vector } = sdsl;
const myVector = new Vector();
// your code here...
</script>
你可以 pull 这个存储库并运行 yarn build 来重建这个库
我们使用 jest 库编写单元测试,你可以看到工作服的测试覆盖率。 您可以运行 yarn test:check 命令来重现它。
我们测试了大多数功能以提高效率。 你可以去 testResult.txt 查看我们的运行结果或使用 yarn test:performance 命令重现它。
1
3dwelcome 2022-07-25 13:57:46 +08:00
直接用 wasm 调用 stl 多好,又不是几年前,写 js 不能混用 c++。
现在 wasm 还支持 simd ,在浏览器上的性能应该会很好。 |
3
maggch97 2022-07-25 15:43:04 +08:00
@zilongyao1366 js 的 dict 和 array 不就是 vector,queue,stack 和 set/map 。剩下的 ds 在 C++也不常用吧。
|
4
ZLY201 OP @maggch97 不一样,dict 不具有排序功能,并且 unshift 和 shift 在 arr 中是 O(n) 的,有效率问题,有一个叫做 denque 的 package 提供了 deque 功能,可以去搜下,被很多底层库引用了,对 nodejs 来说性能还是很重要的
|
5
maggch97 2022-07-25 17:50:08 +08:00 via Android
@zilongyao1366 嗯,你说得对。
|
6
kele999 2022-07-26 09:42:59 +08:00
有没有大佬来说下,这个是不是很牛逼
|
7
ZLY201 OP @kele999 目前考虑可以放在 LeetCode 上,https://leetcode.cn/circle/discuss/6kyrIK/
|