
STL源码剖析学习记录
取名太麻烦了
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关于STL中空间配置器中free_list的理解
freeList是一个元素类型为obj*的数组,freeList[i]代表着一串内存区块链表(注,为了方便说明,把这里的一大块空间称为一个链表,因为它有着与链表类似的表现形式,为了更好的突出链表的形式,上图中的两个区块没有连接在一起。实际上这一块空间是连续的,而链表中的两个节点在内存上不一定是连续的,需要注意)的首地址,每串区块的区块大小是不同的。假设freeList[0]代表一串区块大小为8的区块串,则它有可能是如下的形式可以看出,在一个区块链表中,每两个obj 对象之间的首地址的差值为一个区块的原创 2021-07-07 22:44:42 · 3016 阅读 · 3 评论 -
forward_lsit的erase操作为什么是删除指定的迭代器之后的元素
问题描述:在forward_list的这个容器中,没有erase接口,只提供了erase_after这个接口。其中erase _after(p)为删除迭代器p指向的位置之后的一个元素。那么为什么不能直接删除当前迭代器指向的元素呢。首先找到STL中slist.h,可以看到iterator erase_after(iterator __pos) { return iterator((_Node*) this->_M_erase_after(__pos._M_node)); }于是原创 2021-07-04 18:27:03 · 196 阅读 · 0 评论