C++ Double Ended Queues(双向队列)
双向队列和向量很相似,但是它可以高效的在头尾两端插入和删除元素(就像在尾部一样)。
而且和向量另一个不一样的地方是双向队列采用的是一个连续的内存块。
Constructors | 创建一个新双向队列 |
Operators | 比较和赋值双向队列 |
assign() | 设置双向队列的值 |
at() | 返回指定的元素 |
back() | 返回最后一个元素 |
begin() | 返回指向第一个元素的迭代器 |
clear() | 删除所有元素 |
empty() | 返回真如果双向队列为空 |
end() | 返回指向尾部的迭代器 |
erase() | 删除一个元素 |
front() | 返回第一个元素 |
get_allocator() | 返回双向队列的配置器 |
insert() | 插入一个元素到双向队列中 |
max_size() | 返回双向队列能容纳的最大元素个数 |
pop_back() | 删除尾部的元素 |
pop_front() | 删除头部的元素 |
push_back() | 在尾部加入一个元素 |
push_front() | 在头部加入一个元素 |
rbegin() | 返回指向尾部的逆向迭代器 |
rend() | 返回指向头部的逆向迭代器 |
resize() | 改变双向队列的大小 |
size() | 返回双向队列中元素的个数 |
swap() | 和另一个双向队列交换元素 |
#include <iostream>
#include <deque>
using namespace std;
int main(int argc, char *argv[])
{
deque<int> de(8,1); //初始化一个队列,队列大小为8,元素都是1
deque<int>::iterator it;
for(it=de.begin(); it < de.end(); it++)
{
cout<<*it<<endl;
}
return 0;
}