GNU 2.9中:
一个list中数据部分只含有一个名为node
指向 __list_node<T>
的指针。
lsit在空间储存不连续,为了实现iterator的++等运算,将iterator设计为class而不仅仅是一个指针。iterator类内也含有一个名为node指向 __list_node的指针。该class要模拟指针,有大量的操作符重载(++,–,*,->等)。
list中前后指针形成环状双向链表。为了符合STL前闭后开区间。特地在list尾端加入一个空白结点。begin()指向头节点,end()指向尾端的空白结点。
STL::list源码及实现
最新推荐文章于 2024-10-06 07:00:00 发布