有序关联容器
本文对比了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的元素分散存储在多块固定大小的连续缓冲区里,再通过一个小型主控结构维护这些缓冲区的逻辑顺序,这也是它能实现双端高效操作的核心原因。 依托这样的设计,deque完美兼顾了三大核心优势:保留vecto...
标准模板库vector
代码仓库shanchuann/CPP-Learninng 在C++的标准模板库(STL)中,vector无疑是最常用、最基础的容器之一。它以动态数组的形式实现,既拥有数组般高效的随机访问能力,又能灵活地动态调整大小,是绝大多数场景下存储序列数据的首选。本文将从底层实现原理出发,全面剖析vector的核心机制、接口使用、性能优化以及常见陷阱,帮助你彻底掌握这个强大的容器。 STL(Standard Template Library,标准模板库)是C++标准库的核心组成部分,它通过模板技术将常用的数据结构与算法实现了分离,让开发者可以直接复用高效、通用的组件,而无需重复造轮子。 vector正是STL容器家族中的明星成员。它的本质是一个动态管理的连续内存数组,这意味着: 它支持像原生数组一样的O(1)时间复杂度随机访问; 它可以在运行时自动调整大小,无需开发者手动管理内存; 它的内存布局完全连续,因此可以完美兼容C风格的接口; 它在尾部添加或删除元素的效率极高(通常为O(1)),但在中间位置插入或删除元素则需要移动大量数据(O(n))。 这些特性使得vector成为...
C++中的四种类型转换
C++引入四种类型转换运算符,旨在解决C语言强制转换不安全且难以排查的问题,显著提升代码可读性与安全性。
C++11的final和override关键字
本文详解了C++中纯虚函数与抽象类的概念,阐述了它们如何通过定义接口规范来实现多态性。文章结合Shape与Circle的代码示例,展示了如何强制派生类实现功能,从而提升代码的灵活性与可扩展性。
纯虚函数和抽象类
本文深入浅出地介绍了C++纯虚函数与抽象类的概念,解析了二者在多态编程中的核心作用,并提供了具体的使用场景与注意事项,帮助读者掌握接口规范与实现分离的技巧。
两数之和
本文详解LeetCode第一题两数之和,采用暴力枚举法寻找和为目标值的两个数下标,分析了其时间复杂度O(N^2)与空间复杂度O(1)。
多态
本文详解C++编译时多态,涵盖函数重载、运算符重载及模板技术。通过实例展示如何为自定义类型定义运算符,实现高效且灵活的类型适配,提升代码可读性。
单例模式
本文详解单例模式,保证类仅有一个实例。重点介绍C++饿汉模式,涵盖静态成员变量与静态局部变量两种实现,前者启动即创建且线程安全,后者在C++11后同样安全。



