list
环状双向列表
template <class T>
struct __list_node {
typedef void* void_pointer;
void_pointer prev;
void_pointer next;
T data;
}
迭代器
bidirectional iterators
插入删除过程中其他迭代器不受影响
template<class T, class Ref, class Ptr>
struct __list_iterator{
...
type Ptr pointer;
typedef __list_node<T>* link_type;
link_type node;
...
//重载==,!=,*,->,++,--,操作
pointer operator->() const {return &(operator*());}
//++i前置版本
//返回自身引用
self& operator++()
//i++后置版本
//返回临时对象
self operator++(int)
}
list结构
template <class T, class All