对于任何一个要被STL算法对接的迭代器都需要实现四个运算符重载: operator*(), operator->(), 前自增operator++(), 后自增operator++(int)....尽管原生指针本身就具有正确的运算符, 但是原生指针没有办法返回上面的5个性质. 为了解决这个问题, STL提出了萃取器Traits结构作为中间层....这里注意对于const T*, 尽管指针是常量指针, 但是由于大多数时候使用迭代器就是对数据有修改的需求, 因此在萃取包装的时候返回是元素类型value_type去掉了const限制符, 否则这个返回类型就意义不大了...尽管在具体实现上list是循环链表, 但是在逻辑上仍然是普通的直链, 因此额外插入了没有数据的空白节点以符合STL标准对list区间"前闭后开"的要求....如上图, deque的核心是一个缓冲区映射表结构, 首先deque维护一个底层是vector的索引映射表map, map中以迭代器的形式储存着当前拼接起来的缓冲区的起点地址, 因此利用map我们可以快速跳转到一定距离外的其它缓冲区上