#include <iostream>
#include <deque>
using namespace std;
int main()
{
deque< int > num;
num.push_back(50);
num.insert(num.begin(), 10);
num.insert(num.end(), 20);
num.push_back(60);
num.push_back(40);
cout<<num.size()<<endl;
for(int i=0; i < num.size(); i++)
cout<<num[i]<<" ";
cout<<endl;
num.erase(num.begin());
cout<<num.size()<<endl;
for(int i=0; i < num.size(); i++)
cout<<num[i]<<" ";
cout<<endl;
return 0;
}

我们将例 1 中的 vector 换成 deque,运行程序发现两个程序的运行结果完全相同,是不是 vector 和 deque 相同呢?

答案是否定的。vector 说到底是个数组,在非尾部插入元素都需要移动其它元素,而 deque 则不同,它是一个可以操作数组头部和尾部的数组,因此在头部或尾部插入或删除数据的效率都是一样的。当我们需要频繁在头部和尾部插入或删除数据,则 deque 优于 vector。