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. Docker 完整指南

    欢迎来到 Docker 的完整指南!在这个教程中,我们将深入研究 Docker 的各种特性,从基础的容器操作到高级的网络配置和数据管理.让我们一步步地探索 Docker 的丰富功能. 1. 安装 Do ...

  2. 每日一库:Memcache

    Memcache 是一个高性能.分布式的内存缓存系统,常用于缓存数据库查询结果.API调用结果.页面内容等,以提升应用程序的性能和响应速度.下面详细介绍一些 Memcache 的特点和使用方式: 内存 ...

  3. Gin 框架之用户密码加密

    目录 一.引入 二.密码加密位置 三.如何加密 四.bcrypt 库加密 4.1 介绍 4.2 优点: 4.3 使用 五.小黄书密码加密实践 一.引入 Gin是一个用Go语言编写的Web框架,而用户密 ...

  4. Solon 框架启动为什么特别快?

    思来想去!可能与 Solon 容器的独立设计有一定关系. 1.Solon 注解容器的运行特点 有什么注解要处理的(注解能力被规范成了四种),提前注册登记 全局只扫描一次,并在扫描过程中统一处理注解相关 ...

  5. Swift中常见的String用法,Array高阶使用,Set集合操作

    String字符串常见用法 生成字符串 创建字符串 let greeting = "Hello, world!" let name = String("John" ...

  6. 【算法】C语言程序编程模拟实现strlen函数和strcpy函数

    C语言程序编程模拟实现strlen函数和strcpy函数(超详细的注释和解释) 求个赞求个赞求个赞求个赞 谢谢 先赞后看好习惯 打字不容易,这都是很用心做的,希望得到支持你 大家的点赞和支持对于我来说 ...

  7. Leetcode刷题第一天-贪心

    455-分饼干 链接:455. 分发饼干 - 力扣(LeetCode) 优先使用最小饼干满足最小胃口,一个娃只能分一个饼干T_T不能加 1 class Solution: 2 def findCont ...

  8. 超简单实用的4个PPT操作技巧

    作为我们IT岗位的兄弟姐妹们,一定少不了各种PPT的展示,很多IT大佬总是不屑于PPT的美观,认为只要演讲有干货,格式无所谓,甚至都不需要PPT. 话是这样说,但其实无非就是觉得调整美化实在是浪费时间 ...

  9. Java-统计程序运行的时长(计算两个时间相差的毫秒数、秒数)

    最近在做Hbase的查询性能验证,需要统计查询的执行时长,所以需要统计开始时间和结束时间的时间差. 下面是使用SimpleDateFormat和Date计算时间差(相差毫秒数)的程序示例,仅供参考. ...

  10. NC201985 立方数

    题目链接 题目 题目描述 对于给定的正整数 N,求最大的正整数 A,使得存在正整数 B,满足 \(A^3B=N\) 输入包含 T 组数据,1≤T≤10,000:\(1≤N≤10^{18}\) 输入描述 ...