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.构造函数 构造函数是一种特殊的类成员函数,是当创建一个类的对象 ...
随机推荐
- kettle系统列文章01---安装与配置
1).到官网下载需要安装的kettle版本,目前最新版本4.2,官网地址:http://kettle.pentaho.org,我们是使用的版本是kettle3.2 2).本地安装jdk 1.4或以上版 ...
- vim 从嫌弃到依赖(14)——快速跳转
之前介绍过众多的motion,根据移动范围来排序的话有 l.e.w.j等等,但是面对那么长的代码文件,仅仅使用这几个简单的motion不知道要移动多少次才能找到我想要的代码,这个速度有时候还不如我用鼠 ...
- 事务提交之后再执行某些操作 → 引发对 TransactionSynchronizationManager 的探究
开心一刻 昨晚,小妹跟我妈聊天 小妹:妈,跟你商量个事,我想换车,资助我点呀 妈:哎呀,你那分扣的攒一堆都够考清华的,还换车资助点,有车开就不错了 小妹:你要是这么逼我,别说哪天我去学人家傍大款啊 妈 ...
- SqlSugar基础查询
查所有 List<Student> list=db.Queryable<Student>().ToList() //select * from Student 查询总数 int ...
- 8.6 C++ 泛型化编程态
C/C++语言是一种通用的编程语言,具有高效.灵活和可移植等特点.C语言主要用于系统编程,如操作系统.编译器.数据库等:C语言是C语言的扩展,增加了面向对象编程的特性,适用于大型软件系统.图形用户界面 ...
- LeetCode刷题日记 2020/8/23
题目描述 给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点). 示例 1: 输入: [5,7] ...
- 基于 Gurobi 的纸浆运载船顺序装卸决策建模求解|Gurobi优化应用
Pulp-Carrier-Loading-Optimization-with-Gurobi 基于 Gurobi 的纸浆运载船顺序装卸决策建模求解.中山大学智能工程学院<运筹学>课程期末建模 ...
- Kafka-分布式安装
一.kafka是什么? Kafka是一个快速.可扩展的.高吞吐.可容错的分布式发布订阅消息系统.Kafka具有高吞吐量.内置分区.支持数据副本和容错的特性,它可以处理消费者规模的网站中的所有动作流数据 ...
- [Java]ArrayList源码解析
ArrayList源码解析 1. 核心源码解读 package java.util; import java.util.function.Consumer; import java.util.func ...
- CF1907
A 模拟. B 模拟. C 若原字符串中出现次数最多的次数为 \(cnt\),答案是 \(\max(n\%2,cnt\times 2-n)\). D 二分 \(k\),然后从后往前倒,计算出到达每个线 ...