16.3.1【deque容器基本概念、构造函数】

复制代码
 1 #include<iostream>
 2 #include<stdlib.h>
 3 using namespace std;
 4 #include<deque>
 5 
 6 
 7 /*
 8     3.3 deque容器
 9         3.3.1 deque基本概念
10             双端数组,可以对头端进行插入删除操作(类似于队列?)
11             deque与vector区别:
12                 vector对于头部的插入删除效率低,数据量越大,效率越低
13                 deque相对而言,对头部的插入删除速度回比vector快
14                 vector访问元素时的速度会比deque快,这和两者内部实现有关
15             deque内部工作原理:
16                 deque内部有个中控器,维护每段缓冲区中的内容,缓冲区中存放真实数据
17                 中控器维护的是每个缓冲区的地址,使得使用deque时像一片连续的内存空间
18             deque容器的迭代器也是支持随机访问的
19 
20         3.3.2 deque构造函数
21             deque<T> deqT; //默认构造形式
22             deque(beg, end); //构造函数将[beg, end)区间中的元素拷贝给本身
23             deque(n, elem); //构造函数将n个elem拷贝给本身
24             deque(const deque &deq); //拷贝构造函数
25 */
26 
27 
28 /*
29 void pd(deque<int> & d)
30 {
31     for(deque<int>::iterator it=d.begin(); it!=d.end(); it++)
32     {
33         *it = 100; //读取数据时可能会发生意外修改
34         cout << *it << " ";
35     }
36     cout << endl;
37 }
38 */
39 
40 
41 void pd(const deque<int> & d)
42 {
43     for(deque<int>::const_iterator it=d.begin(); it!=d.end(); it++) //对应使用只读迭代器
44     {
45         //*it = 100; //设置const后,该句报错,可防止读取是意外修改
46         cout << *it << " ";
47     }
48     cout << endl;
49 }
50 
51 
52 void test332()
53 {
54     deque<int> d1; //默认无参构造
55     for(int i=0; i<10; i++)
56     {
57         d1.push_back(i);
58     }
59     pd(d1);
60 
61     deque<int> d2(d1.begin(), d1.end());
62     pd(d2);
63 
64     deque<int> d3(10, 666); //10个666
65     pd(d3);
66 
67     deque<int> d4(d1); //拷贝构造
68     pd(d4);
69 }
70 
71 
72 int main()
73 {
74     test332();
75 
76     system("pause");
77     return 0;
78 }
复制代码

 

posted @   yub4by  阅读(79)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示