今天介绍的是双端队列deque,也是STL中非常重要的内容。
#include <iostream>
#include <deque>
//双向数组的头文件声明
#include <vector>
using namespace std;
int main(int argc, char** argv)
{
deque<int> D1;
//声明一个整形的双向数组,两端都可以压入元素
for(int i=1;i<=10;i++)
{
D1.push_back(i);
//同vector相同,可以在最后面压入一个元素
}
for(int j=1;j<=10;j++)
{
D1.push_front(j);
//在容器头部压入一个元素
}
for(deque<int>::iterator it=D1.begin();it!=D1.end();it++)
{
cout<<(*it)<<" ";
//deque也支持用迭代器循环遍历
}
cout<<endl;
//deque和vector的区别之一:deque有容量
//其他部分和vector基本相同
//empty判断是否为空
//size获取当前大小
//insert插入
//erase删除
for(int i=0;i<=D1.size()-1;i++)
{
cout<<D1[i]<<" ";
//和vector一样,deque也支持通过下标访问某一元素
}
vector<int> V1;
for(int i=1;i<=10;i++)
{
V1.push_back(i);
}
for(vector<int>::iterator it1=V1.begin();it1!=V1.end();it1++)
{
D1.push_back((*it1));
D1.push_front((*it1));
//双向扩展deque,这也是vector没有的优势
}
cout<<endl;
for(int i=0;i<=D1.size()-1;i++)
{
cout<<D1.at(i)<<" ";
//介绍一个新写法,.ar(下标也可以实现随机访问,对vector也适用)
}
return 0;
}