STL源码解析
介绍stl源码数据结构的实现方式,加深自己的理解
Oh奔跑的蜗牛
这个作者很懒,什么都没留下…
展开
-
STL源码分析 -sList
STL源码分析 -sList概述介绍sList的节点-nodesList 的迭代器sList 的数据结构测试代码概述介绍之前博客介绍过List,List是个双向链表,同时STL中也提供了单向链表结构,本次主要介绍单向链表节点、迭代器和单向链表实现设计。sList的节点-node单向链表是由每一个节点组成的,每一个节点的职责就是寻找下一个节点对象和存储当前节点对象的值,因此单向链表的节点对象中需含有next对象的指针,和当前节点对象的值。 struct sListNodeBase { sList原创 2020-11-28 23:34:05 · 239 阅读 · 0 评论 -
STL源码分析 -List
本节进行List的源码分析,主要介绍list的数据结构和迭代器对象,并且实现常用的链表接口,会进行demo验证自己实现的部分接口。1. List概述: 链表是一种线性表,但不会按照线性的顺序存储。链表每次插入和删除一个元素,只配置或者释放一个元素空间,对于任何位置的元素的插入或者删除,list永远是常量时间复杂度。1.1 List的节点-nodetemplate <class T>struct ListNode{ typedef ListNode...原创 2020-09-15 22:52:54 · 274 阅读 · 0 评论 -
STL 源码分析-Vector
最近在学习stl源码,想对经常使用的标准容器了解其底层实现原理,知其然知其所以然,虽然无法达到侯捷大师说的“源码底下,了无秘密”的境界,但是向源码学习,了解的会更加深入。本文章是笔者学习《stl 源码剖析》的学习笔记,因个人的水平有限,难免会有理解不当的地方。如有理解错误,欢迎指出改正。Vector描述Vector是一种序列式容器,与array非常相似,唯一的差别是空间运用的灵活性,array是静态空间,大小定义后就不能改变,vector是动态空间,它的内部机制会自行扩充空间以容纳新元素。Vect原创 2020-08-22 21:30:54 · 253 阅读 · 0 评论