![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL源码剖析
weixin_43562889
这个作者很懒,什么都没留下…
展开
-
list(双向链表)
list概述 环状双向链表 特点: 底层是使用链表实现的,支持双向顺序访问,不支持随机访问,因此访问某个元素需要遍历 在list中任何位置进行插入删除都很快,不会像vector那样子需要逐个移动其他元素 每个节点需要额外的内存 list节点 list的每一个节点都是一个结构体: template <class T> struct __list_node { typedef void* void_pointer; void_pointer prev; //类型为void*。其实可设转载 2020-05-24 23:03:35 · 686 阅读 · 0 评论 -
vector
1.vector概述 vector的数据安排以及操作方式与array非常类似。两者唯一的差别就是在于空间的运用灵活性,array是静态空间,一旦分配了就是固定的,无法改变其大小。需要用户重新申请更大的空间,移动数据,释放原来的空间。而vector是动态空间,有其内部的空间分配机制来及时调整空间大小,其实就是vector把申请空间,移动数据,释放原来的空间等操作封装在内部,不需要用户去处理。 //alloc是SGI STL的空间配置器 template <class T, class Alloc = a转载 2020-05-23 17:36:32 · 1399 阅读 · 0 评论