1.
![](https://i-blog.csdnimg.cn/blog_migrate/afd7c2f75d5245deaa0c833182ac4a7e.jpeg)
2. 原书deque有错误
![](https://i-blog.csdnimg.cn/blog_migrate/a0d151a5d41380786831da10202a5298.jpeg)
应该修改为
typedef _deque_iterator<T,Ref,Ptr,BufSiz> self
不然不知道self到底是什么类型,太坑人了,在这里我还想了好久。
3.cur这个指针每次更换缓冲区都要重新更新。
4.
![](https://i-blog.csdnimg.cn/blog_migrate/41608901340720d7182a4d59cff108a5.jpeg)
5. last指向的是一个缓冲区的尾,什么叫尾,就是最后一个元素的下一个位置
6. erase
![](https://i-blog.csdnimg.cn/blog_migrate/86c245827d520a8616188d35fcc6339b.jpeg)
需要注意的是copy_backward的第三个参数是目的迭代器的end(),copy的第三个参数是目的迭代器的begin()
![](https://i-blog.csdnimg.cn/blog_migrate/c07f9c9fe0376d502fffd758c72bdb04.jpeg)
copy主要是复制元素序列到目的序列的左边,copy_backward主要是复制元素序列到目的序列的右边