C++基本序列式容器 deque (二)

#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。

posted @ 2022-08-19 22:47  luoganttcc  阅读(6)  评论(0)    收藏  举报