百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
M

MiniSTL

> 编程语言
开源

基于 SGI STL 的 Tiny STL

352 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

基于 SGI STL 的 Tiny STL

MiniSTL

本仓库原是《STL源码剖析》一书的代码合集,后续在其基础上运用部分C++17特性进行了代码改写。
最终希望参考SGI STL SOURCE与 folly src 实现一个MiniSTL。

学习计划

针对sgi stl src与folly src,有学习计划如下:

  • 第一阶段:通读《STL源码剖析》全文,了解数据结构的底层实现与算法流程,针对书本完成代码撰写与整理。
  • 第二阶段:补全各容器实现。
  • 第三阶段:针对现有内容撰写完备的单元测试。
  • 第四阶段:逐步完善现有实现完成一个简易STL。(进行中)
  • 最终阶段:尝试改进现有实现,并与std做性能对比,分析原因。

目录

  1. 空间适配器(allocator)

 构造析构工具(construct.h)

 二级空间适配器(alloc.h)

 内存基本处理工具(uninitialized.h)

  1. 迭代器与traits编程技法(iterator && traits)

 iterator_traits(stl_iterator.h)

 type_traits(type_traits.h)

  1. 序列式容器(sequence containers)

 vector(stl_vector.h)

 list(stl_list.h)

 deque(stl_deque.h)

 stack(stl_stack.h)

 queue(stl_queue.h)

 priority_queue(stl_priority_queue.h)

 slist(slist.h)

  1. 关联式容器(associattive containers)

 rb_tree(rb_tree.h)

 set(stl_set.h)

 map(stl_map.h)  multiset(stl_multiset.h)

 multimap(stl_multimap.h)

 hashtable(hashtable.h)

 hashset(hashset.h)

 hashmultiset(hash_multiset.h)

 hashmultimap(hash_multimap.h)

  1. 算法(algorithm)

 数值算法(stl_numeric.h)

 基本算法(stl_algobase.h)

 set相关算法(stl_algoset.h)

 heap算法(heap_algorithm.h)

 其他算法(stl_algo.h)

  1. 函数对象(function object)

 函数对象(function.h)

  1. 配接器(adapter)

 容器类配接器(stack、queue)

 迭代器配接器(insert_iterator、reverse_iterator、istream_iterator)

 函数配接器(not1、not2、bind1st、bind2nd、compose1、compose2、ptr_fun...)

  1. 智能指针(smart_pointer)

 shared_ptr(shared_ptr.h)
 unique_ptr(unique_ptr.h)

编译环境

OS:macOS Monterey 12.1

CXX_Compiler:Apple clang version 13.0.0

Cmake:3.21.4

CppVersion:C++17

编译流程

  1. git clone this repo
  2. cd $work_path/MiniSTL && mkdir build && cd build;
    cmake .. && make;
    
  3. libSTL.a is in $work_path/MiniSTL/build/Source

运行单测

  1. run unit_test need install gtest
  2. git clone this repo
  3. cd $work_path/MiniSTL && mkdir build && cd build;
    cmake .. -DENABLE_MINISTL_TEST=ON && make;
    
  4. run exec file TEST in $work_path/MiniSTL/build/Test

LICENSE

MIT.

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C++algorithmscppcpp17data-structures

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言