干货:夜空中最亮的星---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,一个只专注于干货分享的博主,有问题可以随时来撩我哦!我有故事,你有酒吗?
图片新闻
最新活动更多
-
11月28日立即报名>>> 2024工程师系列—工业电子技术在线会议
-
11月29日立即预约>> 【上海线下】设计,易如反掌—Creo 11发布巡展
-
11月30日立即试用>> 【有奖试用】爱德克IDEC-九大王牌安全产品
-
即日-12.5立即观看>> 松下新能源中国布局:锂一次电池新品介绍
-
12月19日立即报名>> 【线下会议】OFweek 2024(第九届)物联网产业大会
-
即日-12.26火热报名中>> OFweek2024中国智造CIO在线峰会
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论