list的结构是一个双向循环链表,且在尾节点后添加了一个虚拟节点,是为了更好的表示 [ ) 的迭代器范围,且方便对容器进行各种操作;但list只有一个数据成员:指向虚拟节点的迭代器节点结构:数据 + 两个指针(分别指向前驱和后继)迭代器结构:内含一个指向节点的指针;为了符合list的结构,重载了++,–,*,->;提供了5种算法所需类型的typedef,和iterator_traits结合起来使用