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

    文章

    481

    浏览量

    21876
  • 可编程逻辑
    +关注

    关注

    7

    文章

    512

    浏览量

    43904
收藏 人收藏

    评论

    相关推荐

    OpenHarmony语言基础类库【@ohos.util.Deque (线性容器Deque)】

    Deque(double ended queue)根据循环队列的数据结构实现,符合先进先出以及先进后出的特点,支持两端的元素插入和移除。Deque会根据实际需要动态调整容量,每次进行两倍扩容。
    的头像 发表于 04-25 21:17 32次阅读
    OpenHarmony语言基础类库【@ohos.util.<b class='flag-5'>Deque</b> (线性<b class='flag-5'>容器</b><b class='flag-5'>Deque</b>)】

    一文探讨一款名为H6-C111B2W的LED

    ,等待着我们去解读。 首先,让我们聚焦于这款LED的外观尺寸,一个微小的1.7x0.6x1.1mm的立方体,它的颜色是高亮白光,如同夜空中最亮的星辰。它的胶体,一种黄色平面胶体,为光线提供了一个清晰的通道。这款LED不仅遵循EIA规范标准包装,而且还是环保
    的头像 发表于 03-22 18:03 761次阅读

    紫光展锐探索让“夜空中最亮的星”清晰可见的Local Dimming技术

    所谓Local Dmming,是指电视直下式背光的分区控光技术,让背光面板的每个区域可以进行独立的开关或亮度调节,能够更精细地控制背光区域的明灭,使画面明暗层次更加分明,用户视觉感受更为优质。
    的头像 发表于 01-17 16:52 532次阅读

    浅析金属化薄膜电容器及其自愈性

    容器在很多电器中都能用到,它在电路中的作用是负责信息的传递以及能量的储存,电容器的种类极多,其中金属化聚丙烯薄膜电容就是其中最重要的一个类型。
    的头像 发表于 12-24 10:47 538次阅读

    docker容器容器之间通信

    Docker是一种轻量级容器化技术,能够将应用程序及其依赖项封装在一个独立、可移植的容器中。而容器化的应用程序通常是以分布式方式设计的,因此实现容器
    的头像 发表于 11-23 09:36 544次阅读

    C++中STL容器中的常见容器及基本操作

    一、什么是容器? 所谓容器,就是可以承载,包含元素的一个器件,它是STL六大组件之一,是容器、算法、迭代器中最重要也是最核心的一部分。 二、STL中各大
    的头像 发表于 11-10 11:23 242次阅读
    C++中STL<b class='flag-5'>容器</b>中的常见<b class='flag-5'>容器</b>及基本操作

    svg控制器和智能电容器的区别

    智能电容器和SVG控制器是当前高科技领域中最炙手可热的两大产品。然而,很多人对于它们之间的区别还存在一定的疑惑。那么,SVG控制器和智能电容器之间的异同是什么?
    的头像 发表于 10-25 14:21 684次阅读

    电阻器、电容器和电感器的区别

    电阻器、电容器和电感器是电子电路中最基本的元件之一,它们在电路中起着重要的作用。本文将介绍这三种元件的基本原理、特性和应用。
    的头像 发表于 10-20 17:36 2009次阅读

    HarmonyOS线性容器特性及使用场景

    线性容器实现能按顺序访问的数据结构,其底层主要通过数组实现,包括ArrayList、Vector、List、LinkedList、Deque、Queue、Stack七种。 线性容器,充分考虑了数据
    发表于 09-27 15:10

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

    超级电容器与传统电容器的区别 随着电子技术的不断发展,电容器作为其中最基本的电子元件之一,也逐渐得到了广泛的应用。而在电容器的各种类型中,超
    的头像 发表于 09-08 11:41 3700次阅读

    并联电容器和串联电容器的作用

    并联电容器和串联电容器的作用 电容器是一种存储电荷的器件。它的工作原理是在两个电极之间建立电荷。电荷的大小取决于电极之间的电压和电容器的电容量。电
    的头像 发表于 09-04 14:21 2713次阅读

    容器串联和并联特点

    容器串联和并联特点  电容器是一种存储电荷的元件,在电路中被广泛地使用。电容器的串联和并联是电路中最常见的拓扑结构之一。在这篇文章中,我们将详细讨论电
    的头像 发表于 09-04 14:21 7858次阅读

    “可交互空中成像”技术车内应用详解

    针对用户对汽车产品的多元需求,东超科技结合自身“可交互空中成像”技术优势,创新推出『空中成像·智能车载解决方案』,全面提升传统车企座驾空间科技感,提升行业竞争力。
    的头像 发表于 08-02 16:57 1113次阅读
    “可交互<b class='flag-5'>空中</b>成像”技术车内应用详解

    c++值deque容器

    deque 是 double-ended queue 的缩写,又称双端队列容器deque容器支持从头部和尾部双端插入、删除数据。与vector容器
    的头像 发表于 07-14 08:49 470次阅读
    c++值<b class='flag-5'>deque</b><b class='flag-5'>容器</b>

    C++学习笔记之顺序容器

    C++中的顺序容器是一种用于存储和管理元素序列的数据结构。它们提供了一组有序的元素,并支持在序列的任意位置插入和删除元素。C++标准库中提供了多种顺序容器,包括vector、deque、list、forward_list和arr
    的头像 发表于 05-11 17:05 402次阅读