gcc 版本4.4.0
这次我们看看STL中list是怎样设计的。首先这个list要分为两个部分,list结构和list节点的结构。
首先看看list的节点(_List_node) 。
list 节点
由于 _List_node 是继承 _List_node_base。所以先来看看_List_node_base
struct _List_node : public _List_node_base
_List_node_base 中只有两个数据成员: 一个向前的指针,一个向后的指针。从这里可以看出list是一个双向链表
struct _List_node_base
{
_List_node_base* _M_next;
_List_node_base* _M_prev;
...
};
_List_node 中只有一个数据成员: data
template<typename _Tp>
struct _List_node : public _List_node_base