爱意满满的作品展示区。
Chaiii

古法编程 ChaiSTL :曾经学习数据结构时最想要的 C++ STL 风格实现参考

  •  
  •   Chaiii · 16h 20m ago · 527 views

    ChaiSTL 是一个教育性质的 C++23 风格容器库,代码量适中、可读性强、有测试、有 benchmark ,专门写给那些跟我一样“学东西很笨、想刨根问底”的人。结合现在碰到不懂的地方可以让 AI 帮忙解释,我感觉这个项目有了点实际意义,希望能帮助到存在特定学习需求的人(受众圈子很小)。

    GitHub 链接: https://github.com/0xMashiro/chaistl

    我为什么要做这个?

    说白了一种执念,觉得这个东西能帮到曾经的自己。

    当年上数据结构课,别人已经用 C++ 写各种应用了,我还在纠结:

    • 老师实现的 vector 和 STL 源码点进去的 vector 怎么长得不一样?
    • 是不是我太笨了,连“标准”都看不懂?
    • 后来明白了一件事:SGI STL 太老,libstdc++/libc++ 太庞大( ABI 、兼容性、历史包袱)。

    对初学者来说,直接啃生产级源码就像让大一新生去读 Linux 内核。而且那个时候也不是一个很合格的 CS 学生,经过人提醒才知道 GitHub 这种东西,还有 Boost / Abseil 等项目可以参考,环境配半天等等。

    所以我建了这个项目,让它处于 “课堂 toy 实现” 和 “工业级 STL” 之间的位置:

    • 体积小到能读完整一个容器
    • 正经到有测试和 benchmark
    • 接口尽量贴近标准库,方便对照 cppreference 学习

    希望能有所帮助。它在当年是另外一个别名叫 ChaiGO 的项目( C++11 ,要用更多古怪技巧),实现很稚嫩而且不算完整,最近又翻到了这个 “古法编程” 项目,VibeCoding 整理一下接口以及注释,改用了很多 C++20/23 标准特性,然后就开源了。

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3059 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 07:33 · PVG 15:33 · LAX 00:33 · JFK 03:33
    ♥ Do have faith in what you're doing.