// 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;
}