本系列暴死,不会更新了。
该系列为本人的学习笔记,主要由本人整理书写而成。部分内容来自教材、视频课程等,不能保证完全原创性。
萌新的学习笔记,写错了恳请斧正。
# 标准模板库(Standard Template Library)
标准模板库 STL,是 C++ 标准库的一个非常重要的组成成分。它的作用就类似于一个工具箱,里面有很多现成的模板 “工具”,帮助我们更方便的处理数据。
# STL 的版本
STL 最早是由 Alexander Stepanov 和 Meng Lee 在惠普实验室开发出来的,是完全开源的,这个原始版本也是现在所有 STL 的始祖。
# P.J. 版
这个版本是 P.J. Plauger 开发的,不允许公开及修改。这个版本是 STL 最早期的版本之一,代码可读性差而且符号命名比较奇怪。但是 Windows Visual C++ 采用的是这个版本。
# RW 版
这个由 Rogue Wave 公司开发的版本,不允许公开及修改。这个版本着重于与商业环境的集成,通常用于大型企业级项目中。功能非常丰富且跨平台支持性极好。
# SGI 版
SGI 版本由 Silicon Graphics 公司开发,这个版本是标准 C++STL 的基础,也是使用最多的 STL 版本。这个版本是开源的,其设计高效而且稳定,代码风格优秀命名合理。是适合初学者的版本。
# STL 的组成部分
- 容器:就像不同类型的 “数据盒子”,用来存放各种数据,比如动态数组、链表、集合等。
- 迭代器:是用来从这些 “数据盒子” 里拿数据的 “工具”,就像指针,能帮助我们遍历和操作里面的内容。
- 算法:是一组现成的 “操作指令”,用来对数据进行排序、查找、复制等处理。
- 仿函数:仿函数就是一个带有 “函数功能” 的对象,能像函数一样被调用。
- 配接器:用来改变容器、迭代器或仿函数行为的工具。
- 空间配置器:类似于内存池,负责为容器开辟和释放内存。