- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 stl源码剖析之vector,list,deque迭代器分析
一.模型 vector维护的是连续线性空间,当空间大小不足时,另辟一块更大的内存,将之前空间的所有元素移至新空间,并销毁释放原空间。stl中list是一个环状双向链表,它维护的不是连续空间,而是一个个的节点(__list_node),节点之间通过指针连接。deque维护的也是连续线性空间,不过不同于vector,它的空间是分段连续的,当空间大小不足时,deque可以另辟一块空间,并与原来
2016-09-12 13:20:31 485
原创 stl源码剖析之vector
vector是一种序列式容器,使用vector时只需要#include <vector> sgi stl 3.0中vector的具体实现定义在stl_vector.h文件中,vector使用的是连续线性空间,vector的迭代器即为普通指针,截取sgi stl 3.0部分源码,如下//alloc是第一级或第二级配置器,定义在<stl_alloc.h>中,sgi stl中alloc默认为第二级配置
2016-09-11 17:16:53 342
原创 stl源码剖析之traits编程技法
stl中充斥着大量的traits编程技法,要想看stl源码,不了解traits肯定是不行的。 本文主要讲述stl中的taits编程技巧
2016-09-04 09:14:34 702
原创 stl源码剖析之空间配置器
一.理解new与delete 通常我们这样申请与释放C++内存 class Foo{…}; Foo* pf=new Foo(); delete pf; 在这段代码中,new包括3个过程。 1).调用operator new分配内存。 2).调用Foo::Foot()构造对象。 3).返回指针pf。同理,delete包括new相反的过
2016-09-02 01:14:20 400
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人