一. 解释

    Deque(双端队列)是一种具有队列和栈的性质的数据结构。双端队列的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。

    二. 常用操作:

    1. #include<deque>
    2. deque<int> ideq(20);
    3. ideq.push_front(x): 双端队列头部增加一个元素 X
    4. ideq.push_back(x): 双端队列尾部增加一个元素 x //c) 删除函数
    5. ideq.pop_front(): 删除双端队列中最前一个元素
    6. ideq.pop_back(): 删除双端队列中最后一个元素
    7. ideq.clear(): 清空双端队列中元素 //d) 判断函数
    8. ideq.empty() : 向量是否为空,若 true, 则向量中无元素 //e) 大小函数
    9. ideq.size(): 返回向量中元素的个数

    三、举例

    1. #include <deque>
    2. #include <cstdio>
    3. #include <algorithm>
    4. using namespace std;
    5. int main()
    6. {
    7. deque<int> ideq(20);
    8. //Create a deque ideq with 20 elements of default value 0
    9. deque<int>::iterator pos;
    10. int i;
    11. //使用assign()赋值 assign在计算机中就是赋值的意思
    12. for (i = 0; i < 20; ++i)
    13. ideq[i] = i; //输出deque
    14. printf("输出deque中数据:\\n");
    15. for (i = 0; i < 20; ++i)
    16. printf("%d ", ideq\[i\]);
    17. putchar('\\n'); //在头尾加入新数据
    18. printf("\\n在头尾加入新数据...\\n");
    19. ideq.push_back(100);
    20. ideq.push_front(i);
    21. //输出deque
    22. printf("\\n输出deque中数据:\\n");
    23. for (pos = ideq.begin(); pos != ideq.end(); pos++)
    24. printf("%d ", *pos);
    25. putchar('\\n');
    26. //查找
    27. const int FINDNUMBER = 19;
    28. printf("\\n查找%d\\n", FINDNUMBER);
    29. pos = find(ideq.begin(), ideq.end(), FINDNUMBER);
    30. if (pos != ideq.end())
    31. printf("find %d success\\n", *pos);
    32. else printf("find failed\\n");
    33. //在头尾删除数据
    34. printf("\\n在头尾删除数据...\\n");
    35. ideq.pop_back();
    36. ideq.pop_front(); //输出deque
    37. printf("\\n输出deque中数据:\\n");
    38. for (pos = ideq.begin(); pos != ideq.end(); pos++)
    39. printf("%d ", *pos);
    40. putchar('\\n');
    41. return 0;
    42. }

    https://www.cnblogs.com/aiguona/p/7281739.html