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容器 排序操作

  

————————————————————————————————————————————————————————

(〃>_<;〃)(〃>_<;〃)(〃>_<;〃)

posted @ 2023-05-15 22:30  我会变强的  阅读(18)  评论(0编辑  收藏  举报