首页 > 编程语言 >C++黑马程序员——P207-209. deque容器 插入和删除,数据存取,排序操作

C++黑马程序员——P207-209. deque容器 插入和删除,数据存取,排序操作

时间:2023-05-15 22:48:02浏览次数:72  
标签:deque printDeque 209 back 10 P207 push d1

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

  

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

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

标签:deque,printDeque,209,back,10,P207,push,d1
From: https://www.cnblogs.com/wjjgame/p/17403353.html

相关文章

  • UVA12096 题解
    这道题虽然被评黄,但个人感觉不止普及组难度,而且是一道很有价值的题目。题解区里全是\(O(n^2logn)\)的STL大法,我来发一篇\(O(n^2)\)哈希做法。目前0ms喜提最优解。这道题是codeforcesgym的题目,本质上就是模拟栈中集合插入,复制,相加,取交集,取并集的过程。注意,这些集合都是......
  • 基于S7-200的消防泵稳压控制系统程序基于西门子S7-209的消防稳压控制系统程序。
    基于S7-200的消防泵稳压控制系统程序基于西门子S7-209的消防稳压控制系统程序。ID:8225619064102583......
  • 22092133《Java程序设计》第一周学习总结
    1本周学习总结: 一个Java源文件可能编译出多个字节码文件。Scanner是Java的一个类,使用Scanner对象读取数据的时候,要注意next()方法只能读取到有效字符之前遇到的空白,并不能得到带有空格的字符串,nextLine()方法以Enter为结束符,返回输入回车之前的字符就可以获得空白2.书面作业......
  • AtCoder Beginner Contest 209(D,E)
    AtCoderBeginnerContest209(D,E)D(树,lca)D这个题给出\(n\)个点,\(n-1\)条边,有两个人,一个人在\(c\)点,一个人在\(d\)点,两人以相同的速度朝着对方走来(并且都是按照最短路的走法),问这两个人相遇是在点上,还是在路上这一题意很好知道,就是判断这两点之间的最短距离的奇偶性然后我就一......
  • AcWing 1209. 带分数
    1-暴力解法思考1:暴力列举出1~9的全排列,之后再将这些数字按照一定规则相加,最后将结果与n比较。全排列好写,但相加的规则不好写,而且太暴力了,估计会超时。/*AcWing1209.带分数00.最暴力的写法1.枚举全排列2.枚举位数(枚举a和b,可算出c)3.直接算出n,判断等......
  • C++容器(vector、deque、list、map)
    (1)vector:将元素置于一个动态数组中,可以随机存储元素(也就是用索引直接存取)。数组尾部添加或删除元素非常迅速。但在中部或头部就比较费时。*代码演示:*取:at在下标越界时会抛出异常,我们能捕获异常进行处理;而[]下标越界会让程序直接终止;构造函数:cbegin,cend,crbegin,cren......
  • 209. 长度最小的子数组
     分析:这题是找满足和大于等于target的最短数组有点小问题,想用双指针做,但是写得有点糅杂了最后一组案例时间超了最后借鉴了一下题解写出来代码:1classSolution(object):2defminSubArrayLen(self,target,nums):3"""4:typetarget:int......
  • LeetCode 209. 长度最小的子数组
    题目链接:LeetCode209.长度最小的子数组本题是一个滑动窗口的题,所谓滑动窗口,就是不断的调节子序列的起始位置和终止位置,从而得出我们要想的结果。在本题中实现滑动窗口,主要确定如下三点:窗口内是什么?窗口就是满足其和≥target的长度最小的连续子数组。如何移动窗口的起......
  • FIT2099场景
    FIT2099assignmentScenarioInEldenRing,severalhostilecreaturesinhabitthe"LandsBetween".Someofthesecreaturesoccupydifferenttypesofenvironmentsandwillattackanyonethatgetstooclosetotheirterritory.Pleasereadthoroughl......
  • NC20960 迪拜的超市
    题目链接题目题目描述forever97家住迪拜一环,因此有很多大大小小的商场。迪拜一环有n个超市,分别在坐标轴[1,n]位置,forever97家在0这个位置。由于日常开销巨大,所以Trote_w经常让forever97出去买东西。假如forever97现在要买k件物品,他会从第一家超市开始买东西,买完第一家之后向......