"STL源码详解:六大组件,vector基本操作手册"
需积分: 0 75 浏览量
更新于2024-01-30
收藏 3.53MB DOCX 举报
SGI_STL源码记录.docx总结
本文对SGI_STL的源码进行了记录,并提供了关于C++ STL的详解,包括一些简单的基本操作,可作为查看手册使用。主要包括以下内容:
一、STL的六大组件:
STL(Standard Template Library,标准模板库)包括六大组件,分别为容器、算法、函数对象、迭代器、适配器和配置器,本文主要关注配置器和容器这两个组件。
二、allocator配置器:
2.1 allocator.h介绍:
SGI从未使用过allocator配置器,也不建议我们使用。主要原因是效率不高,它只是对C++的::operator new和::operator delete进行了一层薄薄的包装。
三、序列式容器vector:
3.1.1 vector和array的区别:
vector和array的数据安排和操作方式非常相似,唯一的区别在于空间的弹性运用。array是静态空间,一旦配置了大小就不能改变;而vector是动态空间,随着元素的加入,它会自动扩充空间以容纳新元素。
3.2 vector的存储空间:
1) vector是连续存储的,即元素在内存中是紧密排列的。
2) 为了降低空间配置时的速度成本,vector实际配置的大小可能比客户端需求的量更大一些,以备将来可能的扩充。
3) 只能在尾部进行操作,即只能在数组的尾端进行插入和删除操作。
4) 连续存储的优势是可以使用"[]"操作符,可以直接访问元素。
3.3 vector的内部函数:
1) 构造函数:vector(size_type num, const type& val)。它可以创建一个包含num个元素,每个元素都是val的vector对象。
通过以上内容可以看出,SGI_STL是一个强大且高效的C++模板库,其中包含了六大组件,尤其是容器和配置器是其核心。容器具有较高的灵活性和可扩展性,并且支持连续存储,方便使用"[]"操作符直接访问元素。然而,在使用时需要注意allocator配置器的使用,因为它的效率不高。
总的来说,SGI_STL源码记录.docx提供了对STL源码的详细记录,并对C++ STL的基本操作进行了解释,非常适合作为查看手册使用。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2019-09-24 上传
2022-09-24 上传
2021-03-23 上传
2019-11-06 上传
2022-09-23 上传
2019-10-02 上传
凯rui
- 粉丝: 1
- 资源: 22
最新资源
- 毕业设计&课设-Matlab中的超声波模拟。TFM,反射系数,色散,TOF波包分析.zip
- 毕业设计&课设-Matlab中的扩散MRI仿真工具箱.zip
- 毕业设计&课设-MATLAB实现正交匹配寻踪,通过组合海来找到线性方程组的最稀疏解….zip
- 毕业设计&课设-MATLAB中混合连续和离散时间系统的仿真引擎。.zip
- 毕业设计&课设-MATLAB函数用于处理来自维也纳从头算模拟包(VASP)的数据,并执行与….zip
- 毕业设计&课设-MATLAB同步压缩工具箱.zip
- 毕业设计&课设-Matlab三维数字图像相关工具箱.zip
- 毕业设计&课设-Matlab中的曝光融合.zip
- 毕业设计&课设-Matlab中的车辆动力学与控制仿真.zip
- 毕业设计&课设-Matlab四旋翼仿真.zip
- 毕业设计&课设-MATLAB中用于二维仿真的有限元方法.zip
- 毕业设计&课设-matlab中的正交匹配寻踪仿真.zip
- 毕业设计&课设-MATLAB人类活动识别工具箱.zip
- 毕业设计&课设-MATLAB中的简单贝叶斯优化,具有与ANSYS中的模拟交互的界面。.zip
- 毕业设计&课设-Matlab中用于类python simulink的动态系统仿真库.zip
- 毕业设计&课设-Matlab算法交易回溯测试系统.zip