本系列是结合侯捷老师的 STL源码剖析这本书看的,有理解不到位的地方,敬请提出。

版本

首先,需了解以下三个C++编译器:

  1. GNU:Unix下的编译器
  2. VC++:windows平台下的编译器,微软公司开发,因为windows操作系统都是微软的,所以它是主要的windows平台下编译工具
  3. C++ Builder:英巴卡迪诺公司开发的windows平台编译器,Delphi的姊妹,比较小众。

STL的原始版本是HP(惠普)版本,以下三个STL版本都继承了HP版本:

  1. GCC采用SGI STL版本。(GCC是GNU编译套件,包括C、C++、Java、Go等)
  2. VC++采用P.J.Plauger版本
  3. C++ Builder采用Rouge Wave版本

源码位置

我使用的是Ubuntu系统,STL源码在 /usr/include/c++/7/bits 目录下

其他的C++文件在bits的上级目录下

其中STL_开头的文件是SGI STL的内部实现,是我们主要的分析对象。

但为统一为书上的版本,可戳这个链接下载GitHub - steveLauwh/SGI-STL: 剖析 STL 是一种享受的过程!剖析 STL 是一种享受的过程!. Contribute to steveLauwh/SGI-STL development by creating an account on GitHub.https://github.com/steveLauwh/SGI-STL

STL源码剖析(一):STL概论相关推荐

  1. STL源码剖析学习七:stack和queue

    STL源码剖析学习七:stack和queue stack是一种先进后出的数据结构,只有一个出口. 允许新增.删除.获取最顶端的元素,没有任何办法可以存取其他元素,不允许有遍历行为. 缺省情况下用deq ...

  2. 《STL源码剖析》学习-- 1.9-- 可能令你困惑的C++语法1

    最近在看侯捷的<STL源码剖析>,虽然感觉自己c++看得比较深一点,还是感觉还多东西不是那么明白,这里将一些细小的东西或者概念记录一下. 有些东西是根据<C++编程思想>理解的 ...

  3. 《STL源码剖析》学习--6章--_rotate算法分析

     最近在看侯捷的<STL源码剖析>,其中有许多不太明白之处,后经分析或查找资料有了些理解,现记录一下. <STL源码剖析>学习--6章--random access ite ...

  4. 《STL源码剖析》学习--6章--power算法分析

    最近在看侯捷的<STL源码剖析>,其中有许多不太明白之处,后经分析或查找资料有了些理解,现记录一下. 6章--power算法分析 书本中的算法如下所示: template <clas ...

  5. STL源码剖析——P142关于list::sort函数

    在list容器中,由于容器自身组织数据的特殊性,所以list提供了自己的排序函数list::sort, 并且实现得相当巧妙,不过<STL源码剖析>的原文中,我有些许疑问,对于该排序算法,侯 ...

  6. STL源码剖析---红黑树原理详解下

    转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/7760584       算法导论书上给出的红黑树的性质如下,跟STL源码 ...

  7. STL源码剖析面试问题

    当vector的内存用完了,它是如何动态扩展内存的?它是怎么释放内存的?用clear可以释放掉内存吗?是不是线程安全的? vector内存用完了,会以当前size大小重新申请2* size的内存,然后 ...

  8. STL源码剖析学习二:空间配置器(allocator)

    STL源码剖析学习二:空间配置器(allocator) 标准接口: vlaue_type pointer const_pointer reference const_reference size_ty ...

  9. STL源码剖析 数值算法 copy 算法

    copy复制操作,其操作通过使用assignment operator .针对使用trivial assignment operator的元素型别可以直接使用内存直接复制行为(使用C函数 memove ...

最新文章

  1. MWC 2015:Peel全面升级为用户打造智能家居控制新体验
  2. bug ava.sql.SQLException: No more data to read from socket
  3. DCMTK:I2DBmpSource类的测试程序
  4. python数字图像处理-图像噪声与去噪算法
  5. 智能家居 (5) —— LD3320语音模块二次开发
  6. MySQL笔记(二)基础的增删改查
  7. 主机连接虚拟机 web服务
  8. 【scala】 scala xml 处理(⑨)
  9. pcm设备相关代码解析
  10. 第6章第27节:画面太空怎么办:使用小元素填充空旷的版面 [PowerPoint精美幻灯片实战教程]
  11. MSDC 4.3 接口规范(14)
  12. 如何在五分钟让你的应用拥有高精度定位功能
  13. Unity3D关于ComputeShader
  14. DSP28335 CAN模块例程
  15. NEO改进协议提案2(NEP-2) 1
  16. Luogu P2129 小Z的情书
  17. python:tkinter —— Tcl/Tk 的 Python 接口
  18. 计算机读不出相机磁盘,相机存储卡读不出来怎么办?相机存储卡无法读取
  19. android流程点击开机键熄屏,一种基于android系统的灭屏状态下指纹解锁加速亮屏方法与流程...
  20. 学生环境网页设计模板下载 保护环境大学生HTML网页制作作品 简单环境网页设计成品 dreamweaver学生网站模板

热门文章

  1. 三种256MB SPIFLASH的高性能模式和软复位学习笔记
  2. 8086汇编语言寻址方式、基本指令和调试指令
  3. C++之CreateProcess
  4. Nginx 服务详解
  5. 【RPA研究】Gartner公布影响企业发展的10大科技,RPA居首
  6. 【C++ STL学习笔记】C++ STL序列式容器(array,vector,deque,list)
  7. 林志玲“情沪魅影”时装片展情缘-中新网
  8. 《那些年啊,那些事——一个程序员的奋斗史》——106
  9. 教你如何选择一家靠谱的云厂商
  10. Item 24: Distinguish universal references from rvalue references