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