1 //deque容器 构造函数  //deque赋值操作   //deque大小操作 //重新指定大小
2 //deque没有容量概念 //deque插入和删除 //deque 容器数据存取
3 ////deque 排序 sotr算法
4
5 #include<iostream>
6 #include<vector>
7 #include<deque>
8 #include<algorithm>
9
10 using namespace std;
11
12
13 //打印
14 void printDeuqe( const deque<int>& d)
15 {
16 for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++)
17 {
18 //*it = 100; //容器中的数据不可以修改了
19 cout << *it << " ";
20 }
21 cout << endl;
22 }
23 //deque容器 构造函数
24 void test01()
25 {
26 deque<int>d1;
27 for (int i = 0; i < 10; i++)
28 {
29 d1.push_back(i);
30 }
31 printDeuqe(d1);
32
33 //将d1的值赋值给d2
34 deque<int>d2(d1.begin(), d1.end());
35 //deque<int>d2;
36 //d2 = d1;
37 printDeuqe(d2);
38
39 deque<int>d3(10, 100);
40 printDeuqe(d3);
41
42 deque<int>d4(d3);
43 printDeuqe(d4);
44
45 }
46 //打印
47 void printDeque(const deque<int>& d2)
48 {
49 for (deque<int>::const_iterator it = d2.begin(); it != d2.end(); it++)
50 {
51 cout << *it << " ";
52 }
53 cout << endl;
54 }
55
56 //deque赋值操作
57 void test02()
58 {
59 deque<int>d2;
60 for (int i = 0; i < 10; i++)
61 {
62 d2.push_back(i);
63 }
64 printDeque(d2);
65
66 //operator =等号赋值
67 deque<int>d3;
68 d3 = d2;
69 printDeque(d3);
70
71 //assign 赋值
72
73 deque<int>d4;
74 d4.assign(d2.begin(), d2.end());
75 printDeque(d4);
76
77 //n个几
78 deque<int>d5;
79 d5.assign(10, 100);
80 printDeque(d5);
81
82 }
83
84
85 //打印
86 void printDeuqe3(const deque<int>& d3)
87 {
88 for (deque<int>::const_iterator it = d3.begin(); it != d3.end(); it++)
89 {
90 cout << *it << " ";
91 }
92 cout << endl;
93 }
94 //deque大小操作
95
96 void test03()
97 {
98 deque<int>d3;
99 for (int i = 0; i < 10; i++)
100 {
101 d3.push_back(i);
102 }
103 printDeuqe3(d3);
104
105 if (d3.empty())
106 {
107 cout << "d3为空!!" << endl;
108 }
109 else
110 {
111 cout << "d3不为空!!!" << endl;
112 cout << "d3的大小为:" << d3.size() << endl;
113 //deque没有容量概念
114
115 }
116 //重新指定大小
117 d3.resize(15, 1);
118 //d3.resize(15);
119 printDeuqe3(d3);
120
121 d3.resize(6);
122 printDeuqe3(d3);
123
124 }
125 //打印
126 void printDeque4(const deque<int>& d4)
127 {
128 for (deque<int>::const_iterator it = d4.begin(); it != d4.end(); it++)
129 {
130 cout << *it << " ";
131 }
132 cout << endl;
133 }
134 //插入和删除
135 //两端操作
136 void test04()
137 {
138 deque<int>d4;
139 //尾插
140 d4.push_back(10);
141 d4.push_back(20);
142
143 //头插
144 d4.push_front(100);
145 d4.push_front(200);
146
147 printDeque4(d4); //200 100 10 20
148
149
150 //尾删
151 d4.pop_back(); //200 100 10
152 printDeque4(d4);
153 //头删
154 d4.pop_front(); //100 10
155 printDeque4(d4);
156
157
158 }
159
160 void test05()
161 {
162 deque<int>d5;
163 d5.push_back(10);
164 d5.push_back(20);
165 d5.push_front(100);
166 d5.push_front(200);
167
168 printDeque4(d5); //200 100 10 20
169
170 //insert插入
171 d5.insert(d5.begin(), 1000);
172 printDeque4(d5);//1000 200 100 10 20
173
174 d5.insert(d5.begin(), 3,10001);
175 //10001 10001 10001 1000 200 100 10 20
176 printDeque4(d5);
177
178
179 //按照区间插入
180 deque<int>d6;
181 d6.push_back(1);
182 d6.push_back(2);
183 d6.push_back(3);
184
185 d5.insert(d5.begin(), d6.begin(), d6.end());
186 //1 2 3 10001 10001 1001 1000 200 100 10 20
187 printDeque4(d5);
188 }
189 void test07()
190 {
191 deque<int>d7;
192 d7.push_back(10);
193 d7.push_back(20);
194 d7.push_front(100);
195 d7.push_front(200);
196
197 //200 100 10 20
198
199 //删除
200 deque<int>::iterator it = d7.begin();
201 it++; //第二个数据
202 d7.erase(it);
203 //200 10 20
204 printDeque4(d7);
205
206
207 //按照区间方式删除
208 d7.erase(d7.begin(), d7.end()); //换行符
209 printDeque4(d7);
210 //清空
211 d7.clear();
212 printDeque4(d7);
213
214 }
215
216
217 //deque 容器数据存取
218 void test08()
219 {
220 deque<int>d8;
221 d8.push_back(10);
222 d8.push_back(20);
223 d8.push_back(30);
224
225 d8.push_front(100);
226 d8.push_front(200);
227 d8.push_front(300);
228
229 //300 200 100 10 20 30
230 //通过[]方式访问元素
231 for (int i = 0; i < d8.size(); i++)
232 {
233 cout << d8[i] << " ";
234 }
235 cout << endl;
236
237 //通过at的方式
238 for (int i = 0; i < d8.size(); i++)
239 {
240 cout << d8.at(i) << " ";
241 }
242 cout << endl;
243
244 cout << "第一个元素为: " << d8.front() << endl;
245 cout << "最后一个元素为: " << d8.back() << endl;
246 }
247 //打印
248 void printDeque9(const deque<int>& d9)
249 {
250 for (deque<int>::const_iterator it = d9.begin(); it != d9.end(); it++)
251 {
252 cout << *it << " ";
253 }
254 cout << endl;
255 }
256
257 //deque 排序 sotr算法
258 void test09()
259 {
260 deque<int>d9;
261 d9.push_back(10);
262 d9.push_back(20);
263 d9.push_back(30);
264
265 d9.push_front(100);
266 d9.push_front(200);
267 d9.push_front(300);
268 //300 200 100 10 20 30
269 printDeque9(d9);
270
271 //排序 从小到大 升序
272 //对于支持随机访问迭代器的容器,都可以利用sort算法直接对其进行排序
273 //vector容器也可以利用 sort 进行排序
274 sort(d9.begin(), d9.end());
275 cout << "排序后的结果:" << endl;
276 printDeque9(d9);
277
278
279
280 }
281
282 int main()
283 {
284 test01();
285 test02();
286
287 test03();
288
289 test04();
290
291 test05();
292
293 test07();
294
295 test08();
296
297 test09();
298 system("pause");
299 return 0;
300 }

C++ //deque容器 构造函数 //deque赋值操作 //deque大小操作 //重新指定大小 //deque没有容量概念 //deque插入和删除 //deque 容器数据存取 ////deque 排序 sotr算法的更多相关文章

  1. cb11a_c++_顺序容器的操作4_容器大小操作_resize-max_size

    cb11a_c++_顺序容器的操作4 2 容器大小的操作 3 c.size() 容器当前的个数 4 c.max_size(),容器最大存储量 5 c.empty() 是否为空 6 c.resize(n ...

  2. [c++基础]3/5原则--拷贝构造函数+拷贝赋值操作符

    /* * main.cpp * * Created on: Apr 7, 2016 * Author: lizhen */ #include <iostream> #include &qu ...

  3. C++复制构造函数和赋值符的区别

    From  http://blog.csdn.net/randyjiawenjie/article/details/6666937 非常感谢原作者分享. class CTest{public: CTe ...

  4. C++中的构造函数,拷贝构造函数和赋值运算

    关于C++中的构造函数,拷贝构造函数和赋值运算,以前看过一篇<高质量C++/C编程指南>的文章中介绍的很清楚,网上能搜索到,如果想详细了解这方面的知识可以参看一下这篇文章. 常见的给对象赋 ...

  5. 构造函数语义学之Copy Constructor构建操作(2)

    二.详述条件 3 和 4 那么好,我又要问大家了,条件1 和 2比较容易理解.因为member object或 base class 含有copy constructor.那么member objec ...

  6. 关于C++中的拷贝构造函数和赋值函数

    如果类定义的数据成员中存在指针或引用,那么最好重载这两个函数. 1.     定义 拷贝构造函数的定义格式:构造函数名(const 源类名& 引用对象形参名){} 赋值函数定义格式:源类名 & ...

  7. C++雾中风景6:拷贝构造函数与赋值函数

    在进行C++类编写的过程之中,通常会涉及到类的拷贝构造函数与类的赋值函数.初涉类编写的代码,对于两类函数的用法一直是挺让人困惑的内容.这篇文章我们会详细来梳理拷贝构造函数与赋值函数的区别. 1.调用了 ...

  8. C++中:默认构造函数、析构函数、拷贝构造函数和赋值函数——转

    对于一个空类,编译器默认产生4个成员函数:默认构造函数.析构函数.拷贝构造函数和赋值函数.1.构造函数:构造函数是一种特殊的类成员,是当创建一个类的时候,它被调用来对类的数据成员进行初始化和分配内存. ...

  9. C++中构造函数,拷贝构造函数和赋值函数的区别和实现

    C++中一般创建对象,拷贝或赋值的方式有构造函数,拷贝构造函数,赋值函数这三种方法.下面就详细比较下三者之间的区别以及它们的具体实现 1.构造函数 构造函数是一种特殊的类成员函数,是当创建一个类的对象 ...

  10. C++中的构造函数,拷贝构造函数,赋值函数

    C++中一般创建对象,拷贝或赋值的方式有构造函数,拷贝构造函数,赋值函数这三种方法.下面就详细比较下三者之间的区别以及它们的具体实现 1.构造函数 构造函数是一种特殊的类成员函数,是当创建一个类的对象 ...

随机推荐

  1. 【K哥爬虫普法】百度、360八年恩怨情仇,robots 协议之战终落幕

    我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识,知 ...

  2. [置顶] Gin--Begoo框架快速指南

    Gin篇 第一篇: Gin-官方文档 第二篇: Gin-安装,修改启动端口,get/post 请求参数,模型绑定shouldbind,自定义验证器/表单验证 第三篇: Gin-上传文件/返回前端.中间 ...

  3. 2.2 CE修改器:未知数值扫描

    本关需要扫描未知数只扫描,要在不知道初始值的情况下找到一个在0到500之间的数值.首先,选择"未知的初始值"扫描方式,在数值类型中选择 4 字节,并点击"首次扫描&quo ...

  4. 19.6 Boost Asio 文本压缩传输

    Base64是一种二进制到文本的编码方案,用于将二进制数据转换为ASCII字符串格式.它通过将二进制数据流转换为一系列64个字符来工作,这些字符都可以安全地传输到设计用于处理文本数据的系统中. 如下代 ...

  5. 【奶奶看了都会】ChatGPT3.5接入企业微信,可连续对话

    1.连续对话效果 小伙伴们,这周ChatGPT放出大招,开放了GPT3.5的API.说简单点,就是提供了和ChatGPT页面对话一样模型的接口.而之前接的ChatGPT接口都是3.0,并不是真正的Ch ...

  6. 如何使用MBP制作Win启动盘

    最近有一个需求,想给家人的一台笔记本安装一套win 10的操作系统,但是我手头上现在没有对应的启动U盘. 由于工作原因,很多年没用win了,工作电脑也都是MBP,根本没有之前使用win时熟悉的Ultr ...

  7. Windows-Xshell对多个终端同时执行命令(发送命令到多个会话)

    方法1:使用查看中的撰(zhuàn)写栏 (1).查看→撰写→撰写栏. (2).底部可以看到"撰写栏",选择全部会话. (3).在撰写栏输入命令,回车后就会发送到所有会话窗口. 方 ...

  8. P9801 [NERC2018] King Kog’s Reception

    题目传送门 前置知识 线段树 解法 第一眼感觉和 luogu P1083 [NOIP2012 提高组] 借教室 很像.本题同样采用线段树维护,\(sum_{l,r}(1 \le l \le r \le ...

  9. NC24755 [USACO 2010 Dec S]Apple Delivery

    题目链接 题目 题目描述 Bessie has two crisp red apples to deliver to two of her friends in the herd. Of course ...

  10. NC22596 Rinne Loves Data Structure

    题目链接 题目 题目描述 Rinne 喜欢 OI.在 9102 年的 PION 中,她在初赛遇到了这样一道题目: 阅读下列代码,然后回答问题. 补充:建树过程中会更新lc和rc,这实质上是一个二叉查找 ...