摘要: STL 所有容器应用到了空间配置器,当然 deque 在 _Deque_base 中设置了 两个空间配置器,一个负责缓冲区元素的空间配置,一个负责中控器map的指针空间配置: 当然可以追溯下元素空间配置用的配置器是啥: 咱们看看 _Base::get_allocator() 在哪里 可以知道,其实  阅读全文
posted @ 2017-05-10 21:24 Forever-Road 阅读(1111) 评论(0) 推荐(0) 编辑
摘要: 由于迭代器内对各种指针都进行了重载操作,所以各种指针运算如++,--等都不能直观视之,最关键的是缓冲区边缘的相关操作,可能需要 _M_set_node 跳一个缓冲区: 以下几个运算子保证了迭代器的正常运行,其中还涉及到相互调用,也不难理解: 阅读全文
posted @ 2017-05-10 20:00 Forever-Road 阅读(725) 评论(0) 推荐(0) 编辑
摘要: vector 是单向开口的连续线性空间,deque 则是一种双向开口的连续线性空间,也就是说deque能够在其容器两端分别做元素的插入和删除操作,vector 当然也可以从头尾两端进行操作,不过其头部插入或者删除元素的效率贼差,建议大家少用为妙。 deque 是连续空间,但是连续却是假象,实际上 d 阅读全文
posted @ 2017-05-10 19:33 Forever-Road 阅读(906) 评论(0) 推荐(1) 编辑