1 #include<iostream>
2 #include<stdlib.h>
3 using namespace std;
4 #include<deque>
5
6
7 /*
8 3.3.3 deque赋值操作
9 deque& operator=(const deque &deq); //重载等号操作符
10 assign(beg, end); //将[beg, end)区间中的数据拷贝赋值给本身。
11 assign(n, elem); //将n个elem拷贝赋值给本身。
12
13 3.3.4 deque大小操作
14 deque.empty(); //判断容器是否为空
15 deque.size(); //返回容器中元素的个数
16 deque.resize(num); //重新指定容器的长度为num,若容器变长,则以默认值填充新位置。
17 //如果容器变短,则末尾超出容器长度的元素被删除。
18 deque.resize(num, elem); //重新指定容器的长度为num,若容器变长,则以elem值填充新位置。
19 //如果容器变短,则末尾超出容器长度的元素被删除。
20
21 */
22
23
24 void pd(const deque<int> & d)
25 {
26 for(deque<int>::const_iterator it=d.begin(); it!=d.end(); it++)
27 {
28 cout << *it << " ";
29 }
30 cout << endl;
31 }
32
33
34 void test333()
35 {
36 deque<int> d1;
37 for(int i=0; i<10; i++)
38 {
39 d1.push_back(i);
40 }
41 pd(d1);
42
43 deque<int> d2;
44 d2 = d1;
45 pd(d2);
46
47 deque<int> d3;
48 d3.assign(d1.begin(), d1.end());
49 pd(d3);
50
51 deque<int> d4;
52 d4.assign(10, 6); //10个6
53 pd(d4);
54 }
55
56
57 void test334()
58 {
59 deque<int> d1;
60 for(int i=0; i<10; i++)
61 {
62 d1.push_back(i);
63 }
64 pd(d1);
65
66 if(d1.empty())
67 {
68 cout << "is null" << endl;
69 }
70 else
71 {
72 cout << "not null" << endl;
73 cout << "size:" << d1.size() << endl;
74 //deque容器没有vector中capacity容量的概念
75 }
76
77 d1.resize(16);
78 pd(d1); //默认0填充多余空间
79 d1.resize(20, 1); //重载函数自定义用1填充多余空间
80 pd(d1);
81
82 d1.resize(6);
83 pd(d1); //超出6个存储位置的数据被删掉
84 }
85
86
87 int main()
88 {
89 test333(); //deque赋值方式同vector
90 test334();
91 /*
92 deque没有容量的概念
93 判断是否为空 --- empty
94 返回元素个数 --- size
95 重新指定个数 --- resize
96 */
97
98 system("pause");
99 return 0;
100 }
