deque

deque:逻辑上连续,物理上分段的vector数组,随机访问,作为底层特殊容器的实现

deque:中控(指针数组)+缓冲

map:中控,存放缓冲区的地址

buffer:缓冲数组

iterator:迭代器

 

迭代器中的四个指针

(node 车厢, first 车厢第一个位置,last  车厢最后一个位置,cur 车厢内当前位置)

T* cur,缓冲区当前的结点

T* first,缓冲区的第一个结点

T* last,缓冲区最后一个结点(如果是finish,那就是最后一个空间的最后一个元素的下一个位置)

T** node,缓冲区的标记位置

template<class T, class Bef, class Ptr>
class DequeTyerator{
public:
     Ref operator*(){
        return *cur;
    }
     self& operator++(){
//如果中控没满,开辟一个新的缓冲区,将缓冲区的指针放入中控
        cur++;
//如果中控满了,开辟一个新的中控空间,将原中控里的指针拷贝进来
        if(cur == last){
             node++;
             first = *node;
             last = first + bufferlen;
             cur = first;
         }
         return *this
    }
}


template<class T>
class Deque{
public:
    Iterator begin(){
         return _start;
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值