4日10日 OFweek 2025(第十四届)中国机器人产业大会
立即报名 >>>
7.30-8.1 全数会2025(第六届)机器人及智能工厂展
火热报名中>>
干货:夜空中最亮的星---deque容器
一、deque工作原理:
deque容器内部有个中控器,维护每段缓冲区中的内容,缓冲区中存放真实数据;中控器维护的每个缓冲区的地址,使得使用deque时像一片连续的内存空间,如下图所示:
二、deque构造函数:
1、功能描述:
deque容器构造
2、函数原型:
dequedeqT;//默认构造函数
deque(beg,end);//构造函数将[beg,end)区间中的元素拷贝给本身
deque(n,elem);//构造函数将n个elem拷贝给本身
deque(const deque &deq);//拷贝构造函数
代码应用:
#include
结果输出:
root@txp-virtual-machine:/home/txp/test2# ./a.out
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
100 100 100 100 100 100 100 100 100 100
100 100 100 100 100 100 100 100 100 100
三、deque赋值操作:
1、功能描述:
给deque容器进行赋值
2、函数原型:
deque operator=(const deque &deq);//重载等号操作符
assign(beg,end);//将[beg,end)区间中的数据拷贝赋值给本身
assign(n,elem);//将n个elem拷贝赋值给本身
代码应用:
#include
结果输出:
root@txp-virtual-machine:/home/txp/test2# ./a.out
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
100 100 100 100 100 100 100 100 100 100
四、deque大小操作:
1、功能描述:
对deque容器的大小进行操作
2、函数原型:
deque.empty();//判断容器是否为空
deque.size();//返回容器中的元素个数
deque.resize(num);//重新指定容器的长度num,若容器变长,则以默认值填充新位置;如果容器变短,则末尾超出容器长度的元素被删除
deque.resize(num,elem);//重新指定容器的长度num,若容器变长,则以elem值填充新位置;如果容器变短,则末尾超出容器长度的元素被删除
代码应用:
#include
结果输出:
root@txp-virtual-machine:/home/txp/test2# ./a.out
0 1 2 3 4 5 6 7 8 9
d1 is not empty
d1 is : 10
0 1 2 3 4 5 6 7 8 9 1 1 1 1 1
0 1 2 3 4
注:deque没有容量的概念!
五、deque插入和删除:
1、功能描述:向deque容器中插入和删除数据
2、函数原型:
(1)两端插入操作:push_back(elem);//在容器尾部添加一个数据
push_front(elem);//在容器头部插入一个数据
pop_back();//删除容器最后一个元素数据
pop_front();//删除容器第一数据
(2)指定位置操作:
insert(pos,elem);//在pos位置插入一个elem元素的拷贝,返回新数据的位置
insert(pos,n,elem);//在pos位置插入n个elem数据,无返回值
insert(pos,beg,end);//在pos位置插入[beg,end)区间的数据,无返回值
clear();//清空容器的所有数据
erase(beg,end);//删除[beg,end)区间的数据,返回下一个数据的位置
erase(pos);//删除pos位置的数据,返回下一个数据的位置
两端代码应用:
#include
结果输出:
root@txp-virtual-machine:/home/txp/test2# ./a.out
200 100 10 20
200 100 10
100 10
代码应用:
#include
结果输出:
root@txp-virtual-machine:/home/txp/test2# ./a.out
200 100 10 20
1000 200 100 10 20
10000 10000 1000 200 100 10 20
1 2 3 10000 10000 1000 200 100 10 20
代码应用:
#include
结果输出:
root@txp-virtual-machine:/home/txp/test2# ./a.out
200 100 10 20
200 10 20
六、deque数据存取:
1、功能描述:
对deque容器中的数据存取操作
2、函数原型:
at(int idx);//返回索引idx所指的数据
operator[];//返回索引idx所指的数据
front();//返回容器中第一个元素
back();//返回容器中最后数据元素
代码应用:
#include
结果输出:
root@txp-virtual-machine:/home/txp/test2# ./a.out
200 100 10 20
200 100 10 20
the first is : 200
the last is : 20
七、deque排序:
1、功能描述:
利用算法实现对deque容器进行排序
2、算法:
sort(iterator beg,iterator end);//对beg和end区间元素进行排序
代码应用:
#include
结果输出:
root@txp-virtual-machine:/home/txp/test2# ./a.out
200 100 10 20
10 20 100 200
我是txp,一个只专注于干货分享的博主,有问题可以随时来撩我哦!我有故事,你有酒吗?

图片新闻
技术文库
最新活动更多
-
3月27日立即报名>> 【工程师系列】汽车电子技术在线大会
-
4月1日立即下载>> 【村田汽车】汽车E/E架构革新中,新智能座舱挑战的解决方案
-
4日10日立即报名>> OFweek 2025(第十四届)中国机器人产业大会
-
即日-4.22立即报名>> 【在线会议】汽车腐蚀及防护的多物理场仿真
-
4月23日立即报名>> 【在线会议】研华嵌入式核心优势,以Edge AI驱动机器视觉升级
-
4月25日立即报名>> 【线下论坛】新唐科技2025新品发布会
推荐专题
-
1 HBM4大战
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论