"STL源码详解:六大组件,vector基本操作手册"

需积分: 0 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的基本操作进行了解释,非常适合作为查看手册使用。