[项目推广] 参考 C++ STL 实现的 javscript 标准数据结构库

2022-07-25 13:32:52 +08:00
 ZLY201

历时大半年,js-sdsl@4.0.0-beta.0 终于横空出世!方便的朋友可以伸出小手点个 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


js-sdsl

一个以 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 命令重现它。

许可证

MIT licensed

2031 次点击
所在节点    分享创造
7 条回复
3dwelcome
2022-07-25 13:57:46 +08:00
直接用 wasm 调用 stl 多好,又不是几年前,写 js 不能混用 c++。

现在 wasm 还支持 simd ,在浏览器上的性能应该会很好。
ZLY201
2022-07-25 14:05:54 +08:00
@3dwelcome 可是一般 js 开发不会去混用 c++ 的吧,有个库方便开发
maggch97
2022-07-25 15:43:04 +08:00
@zilongyao1366 js 的 dict 和 array 不就是 vector,queue,stack 和 set/map 。剩下的 ds 在 C++也不常用吧。
ZLY201
2022-07-25 16:39:00 +08:00
@maggch97 不一样,dict 不具有排序功能,并且 unshift 和 shift 在 arr 中是 O(n) 的,有效率问题,有一个叫做 denque 的 package 提供了 deque 功能,可以去搜下,被很多底层库引用了,对 nodejs 来说性能还是很重要的
maggch97
2022-07-25 17:50:08 +08:00
@zilongyao1366 嗯,你说得对。
kele999
2022-07-26 09:42:59 +08:00
有没有大佬来说下,这个是不是很牛逼
ZLY201
2022-07-26 11:34:30 +08:00
@kele999 目前考虑可以放在 LeetCode 上,https://leetcode.cn/circle/discuss/6kyrIK/

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/868526

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX