![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL源码剖析
文章平均质量分 86
lubaixs
菜鸟也要先飞...
展开
-
Vector
vector定义与使用 使用前引用头文件 #include 类的源码: class vector { protected: iterator start; //目前使用空间的头 iterator finish; //目前使用空间的尾 iterator end_of_storage; //目前可用空间的尾原创 2015-07-27 20:52:56 · 311 阅读 · 0 评论 -
List
List概述 对于任何位置的插入删除,时间复杂度为O(1)。 list类似于链表,双向链表,环状双向链表 template struct _list_node{ typedef void* pointer; pointer prev; pointer next; }; list的迭代器 重要性质:插入inse原创 2015-07-27 20:53:39 · 286 阅读 · 0 评论 -
Deuqe
deque是一种双向开口的连续线性空间,vector是单向开口的连续线性空间。 deque与vector区别:1、deque是双向开口的连续节点,2、deque没有所谓容量概念。 deque是分段连续的空间,由一段一段的定量连续空间构成, deque类源码: template class deque{ public: typedef T valu原创 2015-07-28 19:46:34 · 516 阅读 · 0 评论 -
Heap
heap,堆是一种完全二叉树,所以可以选择array来存储所有节点。实现heap仅需要一个array和一组heap算法(用来插入、删除元素,取极值,将某一整组数据排列成一个heap),根据元素排列方式,分为大根堆和小根堆。 heap中所有元素都遵循特别的排列规则,所以heap不提供遍历功能,也不提供迭代器。 heap算法:C++代码实现,非STL源码。 //heap算法,底层用v原创 2015-07-29 16:38:23 · 374 阅读 · 0 评论