C++ //deque容器 构造函数 //deque赋值操作 //deque大小操作 //重新指定大小 //deque没有容量概念 //deque插入和删除 //deque 容器数据存取 ////deque 排序 sotr算法
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算法的更多相关文章
- cb11a_c++_顺序容器的操作4_容器大小操作_resize-max_size
cb11a_c++_顺序容器的操作4 2 容器大小的操作 3 c.size() 容器当前的个数 4 c.max_size(),容器最大存储量 5 c.empty() 是否为空 6 c.resize(n ...
- [c++基础]3/5原则--拷贝构造函数+拷贝赋值操作符
/* * main.cpp * * Created on: Apr 7, 2016 * Author: lizhen */ #include <iostream> #include &qu ...
- C++复制构造函数和赋值符的区别
From http://blog.csdn.net/randyjiawenjie/article/details/6666937 非常感谢原作者分享. class CTest{public: CTe ...
- C++中的构造函数,拷贝构造函数和赋值运算
关于C++中的构造函数,拷贝构造函数和赋值运算,以前看过一篇<高质量C++/C编程指南>的文章中介绍的很清楚,网上能搜索到,如果想详细了解这方面的知识可以参看一下这篇文章. 常见的给对象赋 ...
- 构造函数语义学之Copy Constructor构建操作(2)
二.详述条件 3 和 4 那么好,我又要问大家了,条件1 和 2比较容易理解.因为member object或 base class 含有copy constructor.那么member objec ...
- 关于C++中的拷贝构造函数和赋值函数
如果类定义的数据成员中存在指针或引用,那么最好重载这两个函数. 1. 定义 拷贝构造函数的定义格式:构造函数名(const 源类名& 引用对象形参名){} 赋值函数定义格式:源类名 & ...
- C++雾中风景6:拷贝构造函数与赋值函数
在进行C++类编写的过程之中,通常会涉及到类的拷贝构造函数与类的赋值函数.初涉类编写的代码,对于两类函数的用法一直是挺让人困惑的内容.这篇文章我们会详细来梳理拷贝构造函数与赋值函数的区别. 1.调用了 ...
- C++中:默认构造函数、析构函数、拷贝构造函数和赋值函数——转
对于一个空类,编译器默认产生4个成员函数:默认构造函数.析构函数.拷贝构造函数和赋值函数.1.构造函数:构造函数是一种特殊的类成员,是当创建一个类的时候,它被调用来对类的数据成员进行初始化和分配内存. ...
- C++中构造函数,拷贝构造函数和赋值函数的区别和实现
C++中一般创建对象,拷贝或赋值的方式有构造函数,拷贝构造函数,赋值函数这三种方法.下面就详细比较下三者之间的区别以及它们的具体实现 1.构造函数 构造函数是一种特殊的类成员函数,是当创建一个类的对象 ...
- C++中的构造函数,拷贝构造函数,赋值函数
C++中一般创建对象,拷贝或赋值的方式有构造函数,拷贝构造函数,赋值函数这三种方法.下面就详细比较下三者之间的区别以及它们的具体实现 1.构造函数 构造函数是一种特殊的类成员函数,是当创建一个类的对象 ...
随机推荐
- docker 发布web项目到linux
一.准备工作 1.连接到Liunx的工具 MobaXterm 填好Ip 直接点ok就行 输入用户名和密码进入系统 2.已发布的.netcore网站或微服务 在要发布的项目上右键---->添加-- ...
- 【四】超级快速pytorch安装,三步走,分分钟完成!
相关文章: [一]tensorflow安装.常用python镜像源.tensorflow 深度学习强化学习教学 [二]tensorflow调试报错.tensorflow 深度学习强化学习教学 [三]t ...
- 部署MooseFS分布式文件系统
MooseFS是一个分布式文件系统,其本身具有高可用性,高拓展性,开放源代码,高容错,等在数据的读写性能方面,通过dd测试,MooseFS也就是写入的速度稍微好于NFS,读上没有差别. MooseFS ...
- STM32CubeMX教程31 USB_DEVICE - HID外设_模拟键盘或鼠标
1.准备材料 正点原子stm32f407探索者开发板V2.4 STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) ST-LINK/V2驱动 ...
- Arduino-电位器调节led
Arduino-电位器调节led 电位器相关: 电位器是具有三个引出端.阻值可按某种变化规律调节的电阻元件.电位器通常由电阻体和可移动的电刷组成.当电刷沿电阻体移动时,在输出端即获得与位移量成一定关系 ...
- 穿透 SESSION 0 隔离
注:这套程序在这里只是作为了解,博主本人并未测试,所有测试均来自文章最底层链接的原文章. 查看目标进程运行的SESSION位置 在实际开发过程中,可以通过Process Explorer 检查服务或程 ...
- Winows11-hosts文件无法修改保存
Win11系统hosts文件无法修改保存 新近使用win11新电脑修改hosts,添加IP和主机名映射,保存时提示host无法修改. 解决办法: 1.将hosts文件的权限"只读" ...
- 如何使用graalvm为带有反射功能的java代码生成native image
译自Configure Native Image with the Tracing Agent graal官方文档 , 以下所有命令需要在linux环境下操作,graalvm也支持windows. 要 ...
- NC24048 [USACO 2017 Jan P]Promotion Counting
题目链接 题目 题目描述 The cows have once again tried to form a startup company, failing to remember from past ...
- Linux 中hdparm命令参数说明
hdparm命令提供了一个命令行的接口用于读取和设置IDE或SCSI硬盘参数. 语法 hdparm(选项)(参数) 选项 -a:设定读取文件时,预先存入块区的分区数,若不加上选项,则显示目前的设定: ...