0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

夜空中最亮的星——deque容器

电子设计 来源:电子设计 作者:电子设计 2020-12-24 14:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、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

审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 容器
    +关注

    关注

    0

    文章

    536

    浏览量

    23028
  • 可编程逻辑
    +关注

    关注

    7

    文章

    529

    浏览量

    45465
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Kubernetes环境下容器日志的正确查看方式

    容器化环境中,日志收集和查看是运维工程师日常工作中最频繁的操作之一。很多运维工程师习惯性地进入容器内部使用 tail -f 命令查看日志,这种方式在小规模环境下勉强可用,但当容器数量
    的头像 发表于 04-21 11:41 191次阅读

    应如何看待三容器的生产日期和质量?

    容器的生产日期可通过标签编码识别,其质量需结合生产日期、外观工艺、防伪标记及正规渠道综合判断 ,具体分析如下: ​ 一、生产日期的识别方法 三电容的生产日期通常以字母和数字组合的形式标注在
    的头像 发表于 03-12 17:21 777次阅读
    应如何看待三<b class='flag-5'>星</b>电<b class='flag-5'>容器</b>的生产日期和质量?

    Docker容器网络模式全解析

    容器网络是Docker使用中最容易出问题的部分。容器之间怎么通信、容器怎么访问外网、外部怎么访问容器内的服务——这三个问题搞不清楚,排查网络
    的头像 发表于 02-26 16:39 473次阅读

    容器主要试验项目及所用仪器 #电容器 #电力 #干货分享  

    容器
    jf_37653732
    发布于 :2026年02月06日 14:32:34

    电容的纹波电流承受能力如何?

    是电容器在特定工作条件下(如最高温度、特定频率)能够安全承受的交流纹波电流有效值。这一能力与电容器的等效串联电阻(ESR)、散热设计、材料特性等因素密切相关。三作为全球领先的电子元件制造商,其电
    的头像 发表于 12-31 15:31 300次阅读
    三<b class='flag-5'>星</b>电容的纹波电流承受能力如何?

    【瑞萨RA6E2地奇开发板试用】介绍、环境搭建、工程测试

    【瑞萨RA6E2地奇开发板试用】介绍、环境搭建、工程测试 本文介绍了瑞萨 RA6E2 地奇开发板的基本信息,包括产品特点、参数资源、开发环境搭建以及工程测试等。 介绍 RA6E2 地奇是一款
    发表于 12-07 15:27

    超级电容器与传统电容器的区别

    传统电容器与超级电容器在储能原理、性能参数及应用场景上有显著差异,前者侧重能量密度,后者强调充放电速度与功率密度。
    的头像 发表于 11-09 09:33 1987次阅读
    超级电<b class='flag-5'>容器</b>与传统电<b class='flag-5'>容器</b>的区别

    ADSS光缆:电力通信的“空中桥梁”

    在高压输电线路的铁塔之间,一条条看似普通的光缆正默默承载着电力系统的“神经信号”。这些无需金属支撑、直接悬挂在空中的光缆,正是ADSS(全介质自承式光缆)——一种专为电力通信设计的“空中桥梁”。 一
    的头像 发表于 10-31 10:17 1158次阅读

    多层陶瓷电容器与超级电容器的区别

    文章对比了多层陶瓷电容器(MLCC)和超级电容器,强调其在结构、能量管理及应用上的差异,前者快、薄,后者强、大。
    的头像 发表于 10-26 09:18 1431次阅读
    多层陶瓷电<b class='flag-5'>容器</b>与超级电<b class='flag-5'>容器</b>的区别

    空中客车与爱立信成功部署5G专网解决方案

    空中客车与爱立信近日携手在其汉堡生产基地成功部署了5G专网解决方案,与此同时,空中客车图卢兹生产基地的5G专网部署也在稳步推进中。
    的头像 发表于 10-21 16:03 9842次阅读

    贴片电容的叠层陶瓷技术(MLCC)详解

    贴片电容的叠层陶瓷技术,即MLCC(Multi-layer Ceramic Capacitors,多层陶瓷电容器),是一种先进的电容器制造技术。以下是对三MLCC技术的详细解析:
    的头像 发表于 06-10 15:33 1428次阅读

    GPS卫星校时设备:精准时间的“空中灯塔”

    在现代社会,时间的准确性对许多行业至关重要。无论是金融交易、电力调度,还是通信网络、数据中心,都需要高度同步的时间基准。而GPS卫星校时设备,正是通过太空中的卫星信号,为地面提供高精度时间同步的实用工具。
    的头像 发表于 05-30 14:12 1101次阅读
    GPS卫星校时设备:精准时间的“<b class='flag-5'>空中</b>灯塔”

    动态 IP 工作室:解锁数字时代的网络奥秘

    在当今数字化浪潮席卷全球的背景下,网络技术的每一次革新都宛如夜空中闪烁的繁星,照亮了人类探索未知的道路。而动态 IP 工作室,正是这片璀璨星空中备受瞩目的存在之一,它以独特的方式,为我们揭开了数字时代网络的神秘面纱。
    的头像 发表于 05-29 15:30 826次阅读

    贴片电容器规格对照表的内容概括

    贴片电容器规格对照表通常涵盖了多个关键参数,用于描述和区分不同型号的贴片电容器。以下是对该规格对照表内容的概括: ​一、系列编码 CL :表示多层电容。 二、尺寸编码 以英寸或毫米为单位,表示
    的头像 发表于 05-27 14:51 1984次阅读