简介
deque (double-ended queue) 是由一段一段的定量连续
空间构成。一旦要在 deque的前端和尾端增加新空间,便
配置一段定量连续空间,串在整个 deque的头端或尾端。
因此不论在尾部或头部安插元素都十分迅速。在中间部分安
插元素则比较费时,因为必须移动其它元素。deque的最大
任务就是在这些分段的连续空间上,维护其整体连续的假象,
并提供随机存取的接口。
特点:
按页或块来分配存储器的,每页包含固定数目的元素。
deque是list 和 vector的折中方案。兼有 list的优点,也
有vector 随机线性访问效率高的优点。
声明:
deque<元素类型> 队列名;
成员函数使用方法:
队列名.成员函数名(参数);
size():
求队列的元素个数,返回整型。
max_size():
求队列最大可容纳元素个数,返回整型。
resize():
改变队列长度,无返回值。
empty():
判断队列是否为空,返回布尔型。
shrink_to_fit():
减小队列内存以适配长度,无返回值。
at():
返回队列中索引为n的元素,返回模板类型。
front():
访问队头,返回模板类型。
back():
访问队尾,返回模板类型。
push_back():
入队一个元素n,无返回值。
push_front():
插入队首一个元素n,无返回值。
pop_back():
删除队尾,无返回值。
pop_front():
出队一个元素,无返回值。
insert():
在任意位置插入一个元素,无返回值。
erase():
在任意位置删除一个元素,无返回值。
clear():
清空队列,无返回值。
swap():
交换两个元素位置,无返回值。
迭代器:
begin():
指向deque首个元素。
end():
指向deque尾元素的下一个位置。
rbegin():
指向deque尾元素的反向迭代器,即rbegin()指向尾元素,rbegin-1指向倒数第二个元素。
rend():
指向deque头元素前一个位置的反向迭代器,即rend()指向头元素前一个位置元素,rbegin-1指向第一个元素
cbegin():
指向deque首元素,与begin()相同。增加了const属性,不能用于修改元素。
cend():
指向deque尾元素下一个位置,与end()相同。增加了const属性,不能用于修改元素。
crbegin():
指向deque尾元素的反向迭代器,与rbegin()相同。增加了const属性,不能用于修改元素。
crend():
指向deque头元素前一个位置的反向迭代器,与rend()相同。增加了const属性,不能用于修改元素。