STL标准模板库内容整理
STL标准模板库(重点):C++工具(类模板与函数模板) STL标准模板库 本质上就是数据结构和算法 C语言标准库未直接提供 C++标准库直接提供 定义:高效C程序库,含基本数据结构和算法,属C标准库,采用泛型编程 泛型编程:抽象数据类型,用泛型代替具体类型,编写通用代码 六大组件 容器(重要):存储数据(数据结构) 序列式容器:vector、list、deque等 关联式容器:set、map等 无序关联式容器:unordered_set、unordered_map等 迭代器:访问容器元素,泛型指针(例:vector::iterator) 算法:操作容器元素的普通函数(例:std::sort) 适配器:适配作用 容器适配器:stack、queue、priority_queue 迭代器适配器 函数适配器:bind、bind1st、bind2nd、function等 函数对象:实现定制化操作 空间配置器:管理内存(使用、原理、源码) 六大组件 容器 作用:存放数据 1、序列式容器 模型理解 array 静态数组,大小固定的数...
《STL 源码剖析》读书笔记
导言作为具备一定工程实践经验的中级软件工程师,在日常软件开发工作流中,C++ 标准模板库(Standard Template Library,STL)的容器与算法体系已成为不可或缺的编程工具。vector 的动态内存管理机制、map 的有序键值对存储特性,以及 sort 算法的高效执行范式,这些看似常规的编程操作,实则蕴含着深邃的计算机科学设计思想。通过研读侯捷所著《STL 源码剖析》,得以系统性解构 STL 的底层实现逻辑,深刻体会到 "知其然更知其所以然" 在软件工程领域的重要价值。 一、数据结构:从应用层到实现层的认知跃迁在数据结构层面,STL 核心容器的底层实现机制在书中得到细致解析。以 vector 容器为例,其动态数组特性不仅体现在可扩展的存储容量上,更在于其内存管理策略的精妙设计。当容器容量不足时,vector 采用指数级扩容策略(通常为原容量的 2 倍或 1.5 倍,依具体实现而定),通过重新分配内存空间、元素迁移及旧内存释放的流程,在空间复杂度与时间复杂度之间实现了高效平衡。这种 "以空间换时间" 的策略,有效规避了频繁内...

