容器适配器
容器适配器是STL中基于底层容器的接口封装,不独立存储。它通过封装deque等容器,实现了栈、队列和优先队列,屏蔽底层细节,提供便捷操作。
无序容器
无序容器基于哈希表实现,提供快速查找插入删除,不维护元素顺序,适合高效存取场景,常用类型包括unordered_map等,平均时间复杂度为O(1)。
链式哈希
链式哈希通过哈希桶和链表解决哈希冲突,实现常数级查找插入删除,适用于分布式缓存和数据库索引等场景。
一致性哈希
一致性哈希通过将节点和数据映射到哈希环,使节点变更仅影响局部数据,避免缓存雪崩和大量迁移,保障分布式系统稳定运行。
有序关联容器
本文对比了deque与list的迭代器稳定性与效率,解析了基于红黑树的有序关联容器特性,并介绍了std::pair在键值对存储中的核心作用。
标准模板库list
本文详解C++ STL list容器,基于双向链表实现,核心优势是任意位置O(1)的插入删除。文章从底层节点结构到接口实操,全面剖析其特性与应用场景。
标准模板库deque
代码仓库shanchuann/CPP-Learninng 在 C++ STL 的序列容器家族中, vector 凭借极致的随机访问性能成为了绝大多数场景的首选,但它有一个致命短板:头部插入与删除操作的时间复杂度为 O(n),在需要频繁双端操作的场景下效率极低。而 deque ( double-ended queue ,双端队列)正是为解决这个问题而生的容器,它既保留了 vector 的随机访问能力,又实现了头尾两端 O(1)时间复杂度的增删操作,是 STL 中平衡性能与灵活性的经典设计,也是很多开发者容易忽略却实用性极强的核心组件。 deque 属于 STL 序列容器,采用分段连续存储的设计思路,核心设计目标十分明确,既要兼顾随机访问的便利性,又要解决 vector 头部操作低效的问题,同时优化扩容性能。它与 vector 最本质的区别在于内存布局: vector 要求所有元素存储在一整块连续的内存空间中,而 deque 的元素分散存储在多块固定大小的连续缓冲区里,再通过一个小型主控结构维护这些缓冲区的逻辑顺序,这也是它能实现双端高效操作的核心原因。 依托这样的设计...
标准模板库vector
代码仓库shanchuann/CPP-Learninng 在 C++的标准模板库( STL )中, vector 无疑是最常用、最基础的容器之一。它以动态数组的形式实现,既拥有数组般高效的随机访问能力,又能灵活地动态调整大小,是绝大多数场景下存储序列数据的首选。本文将从底层实现原理出发,全面剖析 vector 的核心机制、接口使用、性能优化以及常见陷阱,帮助你彻底掌握这个强大的容器。 STL ( Standard Template Library ,标准模板库)是 C++标准库的核心组成部分,它通过模板技术将常用的数据结构与算法实现了分离,让开发者可以直接复用高效、通用的组件,而无需重复造轮子。 vector 正是 STL 容器家族中的明星成员。它的本质是一个动态管理的连续内存数组,这意味着: 它支持像原生数组一样的 O(1)时间复杂度随机访问; 它可以在运行时自动调整大小,无需开发者手动管理内存; 它的内存布局完全连续,因此可以完美兼容 C 风格的接口; 它在尾部添加或删除元素的效率极高(通常为 O(1)),但在中间位置插入或删除元素则需要移动大量数据( O(n...
C++中的四种类型转换
C++引入四种类型转换运算符,旨在解决C语言强制转换不安全且难以排查的问题,显著提升代码可读性与安全性。
C++11的final和override关键字
本文详解了C++中纯虚函数与抽象类的概念,阐述了它们如何通过定义接口规范来实现多态性。文章结合Shape与Circle的代码示例,展示了如何强制派生类实现功能,从而提升代码的灵活性与可扩展性。




