一、前言

  最近,刚看完《STL源码剖析》,深深被实现STL库的那些的大牛们所折服。同时又感觉自己与大牛们差距之大,便萌生深入学习之意。如果仅仅只是看看《STL源码剖析》的话,又恐对STL的理解又不是非常深刻。故,打算自己动手也去实现下STL的关键组件,又思及自己水平有限,所以,就按照其源码自己重新对着编写一遍,同时在其中加上自己的注释、理解,加深印象。

二、计划安排

  打算的编写顺序,基本与《STL源码剖析》所讲解的顺序基本一致。先编写内存配置器stl_alloc.h,然后是内存的基本工具函数stl_uninitialized.h和全局的用于构造析构函数,再之后,便是迭代器的先关的内容,最后是一些容器实现。如果有时间,可能还会实现下一些常用的算法,如:copy等和一些仿函数。

三、命名的规范

  由于自己水平有限,是对照着源码去实现,所以函数名,类型名,成员变量等一律与源码一致。改动之处是文件名加上wjzh后缀,对应文件的宏也加上WJZH后缀。另外的不同之处,就是由于我所使用的系统一般是ubuntu12.04,对类模版的偏特化等支持已经非常好了,所以源码中针对一些不支持的编译器的另外实现,我都为了节省时间,略去。另外,我会在源码实现的核心部分,加上自己的理解注释。

四、参考资料

  后面博客中有些的理解或者说明性的文字,可能是直接来源于《STL源码剖析》,或者经过我自己理解后所写。并且后面有些为了方便理解,所使用的说明图,也可能是来源于该书。由于比较繁杂,我就不在引用之处一一指出,在此统一指出。也在此感谢该书对于我理解STL的帮助。

转载于:https://www.cnblogs.com/wangjzh/p/4097307.html

自己动手实现STL:前言相关推荐

  1. 自己动手实现STL 02:构造析构的基本工具construct()和destroy()(stl_construct.h)

    一.前言 上一篇,我先完成了对内存配置器的实现.然而后面在内存上的算法还依赖于两个全局函数,construct()和destroy(),前者负责在指定的内存上调用对象的构造函数,在内存上构造出对象.后 ...

  2. 移动端点击拉起输入_没广告、无捆绑、真清流!讯飞输入法PC版评测:跨屏语音动口不动手...

    原标题:没广告.无捆绑.真清流!讯飞输入法PC版评测:跨屏语音动口不动手 一.前言:等待五年 讯飞输入法PC版终于回来了 大家所熟知的讯飞输入法,最早是在Android和iOS等移动端起家,并凭借强大 ...

  3. 数据结构利器之私房STL

    此系列的文章适合初学有意剖析STL和欲复习STL的同学们.都是原创! 学过c++的同学相信都有或多或少接触过STL.STL不仅仅是c++中很好的编程工具(这个词可能有点歧义,用类库更恰当),还是学习数 ...

  4. C++中stack的用法(超详细,入门必看)

    博主简介:Hello大家好呀,我是陈童学,一个与你一样正在慢慢前行的人. 博主主页:@陈童学哦 所属专栏:C++STL 前言:Hello各位小伙伴们好!欢迎来到本专栏C++STL的学习,本专栏旨在帮助 ...

  5. unity的vr场景怎么做_如何运用Unity制作VR全景漫游?

    看文百篇,不如实操一遍.今天给大家分享的是通过Unity制作VR全景漫游的过程与方法,大家感兴趣可以动手试试. 前言 本文介绍了两种方法来制作VR场景:方法一:通过6张小图搭建的VR场景 方法二:通过 ...

  6. 游戏中AI自由寻路,追随玩家,绕开障碍物(基于unity实现)

    游戏中AI自由寻路,追随玩家,绕开障碍物(基于unity实现) 前言 主要实现功能 主要代码分析 游戏运行效果 动手操作 结语 前言 本博客中采用的寻路算法主要为A星算法,A星算法主要实现代码借鉴他人 ...

  7. (d2l-ai/d2l-zh)《动手学深度学习》pytorch 笔记(2)前言(介绍各种机器学习问题)以及数据操作预备知识Ⅰ

    开源项目地址:d2l-ai/d2l-zh 教材官网:https://zh.d2l.ai/ 书介绍:https://zh-v2.d2l.ai/ 笔记基于2021年7月26日发布的版本,书及代码下载地址在 ...

  8. (d2l-ai/d2l-zh)《动手学深度学习》pytorch 笔记(3)前言(介绍各种机器学习问题)以及数据操作预备知识Ⅲ(概率)

    开源项目地址:d2l-ai/d2l-zh 教材官网:https://zh.d2l.ai/ 书介绍:https://zh-v2.d2l.ai/ 笔记基于2021年7月26日发布的版本,书及代码下载地址在 ...

  9. 【李沐动手学深度学习】读书笔记 01前言

    虽然之前已经学过这部分内容和深度学习中的基础知识,但总觉得学的不够系统扎实,所以希望再通过沐神的课程以及书籍,系统条理的学习一遍.在读书过程中,利用导图做了一下梳理,形成了这个读书笔记.如有侵权,请联 ...

最新文章

  1. 自定义View步骤学习笔记
  2. 区块链经济时代得“先机”者得天下!
  3. 【代数结构】群 ( 群的定义 | 群的基本性质 | 群的证明方法 | 交换群 )
  4. 氧气中国·创业创新大赛企业服务专场
  5. java多线程问题 Runnable和Callable有什么不同?
  6. 留言板JavaScript实现
  7. TensorFlow相关
  8. Python SQLite教程
  9. 3 矩阵运算_FlyAI小课堂:小白学PyTorch(11) 常见运算详解
  10. Java 中 final 内存语义
  11. 线性同余法求伪随机数序列
  12. Taro 周报 #7: 收获「e代驾」案例,发布 v2.2.16 和 v3.2.0-canary.2
  13. 华硕Armoury crate 奥创控制中心 卡在安装安装已连接设备中,安装失败,请重新启动,网络连接失败(-101)
  14. 【笔记】MyBatis 大于等于小于等于常用写法
  15. docke网络之bridge、host、none
  16. 【统计学】统计学基础
  17. 玻色量子CEO文凯出席首届CCF量子计算大会,分享量子计算加速药物研发新突破
  18. 房屋租赁出售系统的设计与实现
  19. 3w服务器把信息组织成,WWW的全称是什么?WWW中文名称是啥?
  20. 毕业设计 java网上购物商城系统(源码+论文)

热门文章

  1. 进程与线程的四个区别
  2. Mybatis之二级缓存简析
  3. ES6 Promise - 让我们解开的面纱(遵循Promise/A+规范)
  4. CentOS7下安装MySQL5.7安装与配置(YUM)
  5. destoon复制新模块的方法
  6. 获取当前上下文Activity
  7. 无显示仍然发挥树莓派——VNCserver设定
  8. LVS(DR)+keepalived实现高可用负载均衡
  9. Lync Server多SIP域环境和简单URL地址部署
  10. Windows Phone 7三触控程序开发