deque

deque概述

deque是一种双向开口的连续线性空间。可以在头尾两端分别做元素的插入和删除操作。
deque和vector的不同:
1)deque可以常数时间内对起头端进行元素的插入或移除操作
2)deque没有容量观念,它是动态地以分段连续空间组合而成,随时可以增加一段新的空间并链接起来。

deque中控器

deque是由一段一段的定量连续空间构成。deque采用一块所谓的map作为主控。这里所谓map是一块连续空间,其中每个元素都是指针,指向另一段(较大的)连续空间,称为缓冲区,缓冲区才是deque的存储空间主体。SGI STL允许我们制定缓冲区的大小,默认值0表示将使用512bytes缓冲区。

deque的迭代器

deque迭代器应该具备的结构:
1.能够指出分段连续空间(亦即缓冲区)在哪里
2.必须能够判断自己是否已经处于其所在缓冲区的边缘,如果是,一旦前进或后退时必须跳跃至下一个或上一个缓冲区。为了能够正确跳跃,deque必须随时掌握管控中心。
插个图喔

deque的数据结构

deque除了维护一个map指针外,也维护start,finish两个迭代器,分别指向第一缓冲区的第一个元素和最后缓冲区的最后一个元素。一旦map所提供的节点不足,就必须重新配置更大的一块map。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值