deque

Posted 阿蓉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了deque相关的知识,希望对你有一定的参考价值。

// deque.cpp : 定义控制台应用程序的入口点。
//  deque容器
//称双端队列
//支持随机访问,同时能和list一样在头部和尾部插入和删除数据
/*
 deque()声明一个空deque
 deque(n)声明一个0到n-1个元素的deque
 deque(n,val)声明一个n个值为val的元素的deque
 deque(dequel)复制构造函数
 deque(itBegin,itEnd)部分复制构造函数
 ……
*/
#include "stdafx.h"
#include<deque>
#include<iostream>
using namespace std;
struct stTest
{
 stTest()
 {
  m_a = 0;
  m_b = 0;
 }
 stTest(int a)
 {
  m_a = a;
  m_b = a;
 }
 stTest(int a,int b)
 {
  m_a = a;
  m_b = b;
 }
 int m_a, m_b;
};
int _tmain(int argc, _TCHAR* argv[])
{

 deque<int> deq(10);
 deque<stTest> deq2(20, {1,2});
 deque<int> deq3 = {1,2,3};
 deque<stTest>deq4(deq2);
 deq3.assign(2,5);//重新分配2个5
 cout << "deq首元素的地址:" << &deq.front() <<"  value=" << deq.front()+2 << endl;
 cout << "deq3首元素的地址:" << &deq3.front() <<"  value=" << deq3.front() << endl;
 deq.swap(deq3);//deq和deq3交换(交换的是两个对象的地址)
 cout << "deq首元素的地址:" << &deq.front() <<"  value=" << deq.front() << endl;
 cout << "deq3首元素的地址:" << &deq3.front() <<"  value=" << deq3.front() << endl;

 deq[0];
 deq.at(1);//和deq[]的区别是at()找不到会抛出异常
 //……
 return 0;
}

 

以上是关于deque的主要内容,如果未能解决你的问题,请参考以下文章

Java双端队列Deque使用详解

C++ stack&queue

Java和c++的栈和队列

ArrayDeque双端队列 使用&实现原理分析

ArrayDeque双端队列 使用&实现原理分析

STL中有关dequestackqueuepriority_queue