
STL源码
文章平均质量分 51
会笑的那双眼
喜欢那双会笑的眼
展开
-
stl priority_deque
priority_deque 优先队列,核心其实是几个函数:make_heap()原创 2021-06-14 23:10:37 · 274 阅读 · 0 评论 -
STL distance
distance原创 2021-06-12 11:39:17 · 307 阅读 · 0 评论 -
STL inserter
这个是个迭代器接口:template<typename _Container, typename _Iterator>inline insert_iterator<_Container>inserter(_Container& __x, _Iterator __i){ return insert_iterator<_Container>(__x, typename _Container::iterator(__i));}...原创 2021-06-12 10:40:18 · 203 阅读 · 0 评论 -
STL 红黑树(gcc 4.8.5)
红黑树,作为一个为了二叉树平衡性而提出的一种二叉树结果,他是STL中的set和map的基础数据结构;那么对于一个红黑树,规则如下:节点是红色或黑色 根节点一定是黑色 每个叶节点都是黑色空节点 每个红节点的两个子节点都是黑色的 对于层来说除了空节点,红黑节点是交替的 从任一节点到其每个叶子节点的所有路径都包含相同数目的黑色节点...原创 2021-06-11 00:28:19 · 241 阅读 · 0 评论 -
stl deque(gcc 4.8.5)
dasd原创 2021-06-08 10:26:19 · 151 阅读 · 0 评论 -
stl list(gcc 4.8.5)
整个list原创 2021-06-07 09:22:28 · 145 阅读 · 0 评论 -
vector
对于容器vector,他的存储原理就是一个数组,对于数组空间申请的话,那么就是基于https://welsey.blog.youkuaiyun.com/article/details/112189216中的空间分配器去进行空间申请;vector核心成员数据: pointer _M_start; // 开始存储元素的空间地址 pointer _M_finish; // 最后一个存储元素的之后的一个位置的空间地址 pointer _M_end_of_stor原创 2021-01-04 22:36:24 · 483 阅读 · 1 评论 -
关于容器与空间分配
容器本质上的作用就是对数据的管理,整体来说就是对数据的增、删、修改;但是结合了计算机的空间属性,就又需要进行一次扩展,也就是对于计算机空间的管理:申请与释放;对于一个元素的话,整个过程可以参考new的过程,且STL默认的空间分配器就是以new作为基础进行实现,new的话,直接使用它会申请需要的空间并调用对象的构造函数并返回构造好对象的空间地址;他是分为两个过程的,一个过程是对空间的申请,另外一个过程是对申请到的空间的对象构造;在C++中分别是operator new与placement new;容器原创 2021-01-04 21:02:48 · 513 阅读 · 0 评论 -
STL源码解析(gcc-4.8.5版本)
最近刚参考侯捷的<STL源码剖析>查看了STL相关的代码实现,收获有一些,追其溯源,本质上的话就是template的模板匹配以及有一些算法的结合;所谓人不进行耕作就要进行写作,对其记录一下,具体想要表达什么自己也不清楚,也许只是作为一个标志吧。...原创 2021-01-04 17:25:27 · 562 阅读 · 0 评论