![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL源码剖析
文章平均质量分 87
行仔ovo
这个作者很懒,什么都没留下…
展开
-
STl学习记录(3) - 迭代器与仿函数
文章目录0. C++标准库的算法是什么?1. 迭代器的分类为什么用继承来表示,而不用1,2,3...这种整数来表示?2.0. C++标准库的算法是什么?容器,是个类模板算法,是个函数模板迭代器,是个类模板仿函数,是个类模板适配器,是个类模板分配器,是个类模板算法(Algorithm)看不见容器,对其一无所知,所以,它所需要的一切信息都必须从迭代器(Iterator)。算法通过询问迭代器一些问题,来了解一些信息(比如,迭代器如何“走”),迭代器必须能够回答算法的所有提问,才能搭配该算法完成所原创 2021-06-10 00:05:34 · 137 阅读 · 0 评论 -
STL学习记录(2) - 关联式容器
文章目录list是一个双向链表。iterator也是一个类,需要重载*操作符、两个++的运算。iterator中至少有5个typedef在链表尾部,刻意加了一个空节点,与“前闭后开”的思想吻合。iterator必须能够回答algorithm的5个提问(但是实际上目前只用了3个):但是STL中的算法,参数不一定是class,可能就是一个一般的指针比如 int* 呢?那就不能直接问,需要间接的问,所以,在标准中加入了一个中介:迭代器萃取机(iterator traits)。算法先问萃取机,萃取机再原创 2021-05-06 00:48:49 · 93 阅读 · 1 评论 -
STL学习记录(1) - 顺序式容器
文章目录0. 序1. list2. vector3. array4. forward_list5. dequedeque如何模拟连续?6. queue7. stack0. 序学习STL源码做的笔记,主线是侯捷老师的《STL源码剖析》。本文中部分图片来自侯捷老师的PPT。1. listlist是一个双向链表。list容器的iterator也是一个类,需要重载*操作符、两个++的运算。因为list所占的内存空间不一定是连续的,可能是跳跃的。iterator中至少有5个typedef(不只是list原创 2021-05-05 00:13:13 · 149 阅读 · 0 评论