C++黑马程序员——P207-209. deque容器 插入和删除,数据存取,排序操作
- P207. deque容器——插入和删除
- P208. deque容器——数据存取
- P209. deque容器——排序操作
- P207. deque 插入和删除
————————————————————————————————————————————————————————
1 #include <iostream>
2 #include <deque>
3
4 using namespace std;
5
6 //打印deque容器的函数
7 void printDeque(const deque<int>& d) //加 const 是为了只读,防止修改数据
8 {
9 for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++) { // const_iterator 是 iterator 的 const 版本,只读的迭代器
10 //*it = 100; 只读不允许修改,会报错
11 cout << *it << " ";
12 }
13 cout << endl;
14 }
15
16 //两端操作
17 void test01()
18 {
19 cout << "test01" << endl;
20 deque<int>d1;
21 //尾插
22 d1.push_back(10);
23 d1.push_back(20);
24 //头插
25 d1.push_front(100);
26 d1.push_front(200);
27
28 printDeque(d1); //200 100 10 20
29
30 //尾删
31 d1.pop_back(); //200 100 10
32 printDeque(d1);
33 //头删
34 d1.pop_front();
35 printDeque(d1); //100 10
36 }
37
38 // insert
39 void test02()
40 {
41 cout << "test02" << endl;
42 deque<int>d1;
43 d1.push_back(10);
44 d1.push_back(20);
45 d1.push_front(100);
46 d1.push_front(200);
47 printDeque(d1);
48
49 //insert 插入
50 d1.insert(d1.begin(), 1000);51 printDeque(d1);
52 d1.insert(d1.begin(), 2, 10); //2个10
53 printDeque(d1);
54 //区间插入
55 deque<int>d2;
56 d2.push_back(1);
57 d2.push_back(2);
58 d2.push_back(3);
59
60 d1.insert(d1.begin(), d2.begin(), d2.end()); //在d1.begin() 位置插入 d2.begin() 到 d2.end()
61 printDeque(d1);
62 }
63
64 //删除
65 void test03()
66 {
67 cout << "test03" << endl;
68 deque<int>d1;
69 d1.push_back(10);
70 d1.push_back(20);
71 d1.push_front(100);
72 d1.push_front(200);
73 printDeque(d1); //200 100 10 20
74
75 deque<int>::iterator it = d1.begin();
76 it++;
77 d1.erase(it); //删除的是第二个元素
78 printDeque(d1); //200 10 20
79 //区间删除
80 //d1.erase(d1.begin(), d1.end()); //相当于d1.clear()
81 d1.clear();
82 printDeque(d1); //只打印一个换行符
83 }
84
85 int main() {
86
87 test01();
88 cout << endl;
89 test02();
90 cout << endl;
91 test03();
92 return 0;
93 }
运行结果:
- P208. deque 数据存取
和 vector 的一样:
————————————————————————————————————————————————————————
1 d[i]
2 d.at(i)
3 d.front()
4 d.back()
- P209. deque容器 排序操作
————————————————————————————————————————————————————————
(〃>_<;〃)(〃>_<;〃)(〃>_<;〃)