【C++编程】双端数组 deque 容器基本操作

【C++】STL容器(strlen,vector,deque) 在处理字符串时,了解字符串的长度和容量信息至关重要。C++ 的 string 类提供了一系列函数来满足这一需求。size和length函数用于返回字符串中字符的数量,二者在功能上完全等价。capacity函数则返回当前为字符串分配的存储空间大小,即容量。容量通常大于或等于字符串的实际长度,这是为了避免在频繁添加字符时频繁进行内存重新分配,从而提高性能。resize函数用于调整字符串的长度。如果新长度大于原长度,会在字符串末尾填充指定字符(默认为空字符);如果新长度小于原长度,则会截断字符串。 阅读详情

🔥 特点:deque 头插、头删速度比 vector 快

deque 是一个双向队列(double-ended queue),可以在队列的两端进行元素的插入和删除操作。
deque 涵盖了 queue(队列)、stack(堆栈)、vector(向量 )…

步骤零: 使用时需要包含头文件 #include<deque>

void printDeque(deque<int> &d) // 逐个元素打印
{
    for (deque<int>::iterator i = d.begin(); i<d.end(); i++)
    {
        cout << *i << endl;
    }
}

💜 deque 构造与赋值

// 1. 默认构造
deque<int> d1 = {0,1,2,3,4,5,6,7,8,9};	
deque<int> d11;
d11 = d1;  // 赋值 0 1 2 3 4 5 6 7 8 9
d11.assign(d1.begin(), d1.end());  // 赋值 0 1 2 3 4 5 6 7 8 9
d11.assign(10, 1);  // 赋值 1 1 1 1 1 1 1 1 1 1 

// 2. 通过区间构造
deque<int> d2(d1.begin(), d1.end());   	

// 3. n个element
deque<int> d3(10, 1); 	 
	
// 4. 拷贝构造			
deque<int> d4(d1);  				

💜 deque 插入和删除:push_back/front 、pop_back/front、insert、erase、clear

deque<int> d1 = {0,1,2,3,4,5,6,7,8,9};
d1.push_back(10);  // 0 1 2 3 4 5 6 7 8 9 10  			- 尾插 10
d1.pop_back();  // 0 1 2 3 4 5 6 7 8 9 		  			- 尾删 10
d1.push_front(-1); // -1 0 1 2 3 4 5 6 7 8 9   			- 头插 -1
d1.pop_front(); // 0 1 2 3 4 5 6 7 8 9 		  			- 头删 -1

d1.insert(d1.begin(), -1);  // -1 0 1 2 3 4 5 6 7 8 9	- d1.begin() 处插入 -1
d1.erase(d1.begin());  // 0 1 2 3 4 5 6 7 8 9	  		- d1.begin() 处删除 -1

d1.clear(); // 清空

💜 deque 大小获取:empty、 size

deque<int> d1 = {0,1,2,3,4,5,6,7,8,9};
cout << d1.empty() << endl;     // 0
cout << d1.size() << endl;      // 10

💜 deque 排序:sort

// 需要头文件 #include <algorithm>
deque<int> d1 = {0,1,3,2,4,8,5,6,7,9};
sort(d1.begin(), d1.end());  // 0 1 2 3 4 5 6 7 8 9 

【博客参考链接】
【黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难】

【041】巧妙地穿梭双端:掌握C++ STL中deque容器的强大功能 在C++标准模板库中,deque(双端队列)作为一种灵活且高效的数据结构,为开发者提供了在两端快速插入和删除元素的能力。与vector相比,deque在内存管理和操作性能上有着显著的优势,使其在处理需要频繁修改的数据场景中表现更为出色。本文将深入探讨deque的基本特性、实现原理、常用API及其在实际应用中的价值,帮助开发者充分理解并利用这一强大的容器。通过实例分析,我们将展示如何在竞技类项目中运用deque进行高效的数据管理和处理。让我们一同揭开deque的神秘面纱,掌握这一高效的编程工具。 阅读详情

相关推荐

C++编程练习:深入掌握std::deque容器

Deque能够在两端进行元素的添加和删除操作,与传统的单端队列(Queue)或栈(Stack)相比,Deque提供了更灵活的操作方式。这种数据结构的优势在于,无论是在前端还是后端进行插入和移除操作,都有较高的效率,其时间复杂度大多为O(1),这意味着操作几乎不受数据量的影响。

weixin_35592186的博客 938

【C++】stack和queue的模拟实现 && 双端队列deque的介绍

本篇博客的主要内容:STL库中stack和queue的模拟实现以及deque的介绍。这部分是名副其实的奖励内容了,stack和queue作为容器适配器,是基于一些容器实现(如:vector,list以及deque)。内部结构实现起来很容易,但是需要多多关注模板的一些使用。deque作为容器,也被我们叫做双端队列,常用作栈和队列的底层适配容器。

2303_79329831的博客 2159

亚马逊(Amazon ads)广告API申请步骤(已经更新完)

你如果是自己的店铺使用,就选择左边的、如果是授权的那种给别人用就选右边的。审核通过了才能进行下一步,我目前就是刚申请完,后续会持续更新!然后会调整到,下面的页面,选择Agency然后右上角点击创建。审核通过会发邮件到你的企业邮箱、时间大概是1-7天左右。输入对应的信息,点击提交审核,就可以开始申请了。1、广告平台跟卖家平台是分开的,这个概念要清楚。2、注册广告一定要用企业邮箱!回到首页,点击成为合作伙伴。注册了以后会跳转到广告。然后再点击加入合作伙伴。然后会弹出下面的页面。

阿泽的博客 5657

C++核心编程之Deque容器

深入浅出deque容器:双端队列的奇幻漂流

嵌入式小程同学的博客 889

AD创建属于自己的元件库(详细)

我今天开始学习AD2022,但是我想自己创建属于自己的元件库,但是奈何找了好多教程就是随便几句话就把我打发走了,弄了一天都没搞定(也许是我比较菜),所以现在乱懂了,自己写一个属于我们自己小白的教程,希望有用吧哈哈我比较偷懒,直接使用嘉立创上画好的元件导入,和我们自己创建自己画的步骤其实都一样。

qq_33591173的博客 2万+

什么是 MDB-RS232,为什么需要 MDB-RS232适配器 ?

在您需要设计一个售货机,首先需要选择适合您机器的主板,比如安卓主板、树莓派、工控机或者PLC等,这些主板都是没有MDB接口的,而支付设备,比如你选择的纸币器,硬币器,都是MDB接口。那您就需要这个 MDB 适配器,来把MDB接口的支付设备连接到这些串口的主板上,进行通信和控制。MDB-RS232旨在将MDB 协议转换为 RS232 协议,并执行必要的电压转换以及数据路由工作。,能够让主板轻松执行其他任务,不需要考虑协议的具体软硬件的兼容和稳定性问题。专业的设计指导和协助协议分析,丰富的开发文档。

waferstar的博客 1382

【C++】STL的百宝箱—全能deque的简单讲解

摘要 STL中的deque(双端队列)是一个兼具vector和list优点的容器:既支持随机访问,又能在两端高效插入删除。其底层采用分段数组结构,通过指针数组(中控数组)管理多个buffer,实现灵活扩容。虽然随机访问效率略低于vector,但头尾操作性能优异,成为stack和queue的理想底层容器。deque的迭代器设计复杂,需维护四个指针来跨越不同buffer。尽管无法完全替代vector(极致随机访问)或list(任意位置O(1)插入),但作为折中方案,它在空间利用率和操作效率上取得了平衡。

qq_2778465975的博客 1753

Scratch离线版部署指南:解决资源缺失与页面显示异常问题

本文提供了一份详尽的Scratch离线版部署指南,旨在解决网络依赖导致的资源缺失与页面显示异常问题。通过从基础文件获取、自动化资源抓取到生产环境部署的完整流程,帮助教育工作者和开发者在无网络环境下搭建功能完整的本地Scratch编辑器,确保编程教学的顺利进行。

wine的专栏 1263

【C++】深入理解 C++ 优先级队列、容器适配器与 deque:实现与应用解析

在 C++ 标准库中,优先级队列()是一种容器适配器,特别适合处理需要频繁访问最大值或最小值的数据集。同时,双端队列deque也是一种灵活的标准容器,支持高效的头尾插入、删除操作,被广泛用于实现队列、栈等数据结构。本文将深入讲解优先级队列、deque及其在容器适配器中的应用。优先级队列是一种基于优先级的特殊队列。默认情况下,C++ 的是最大堆,出队时总是返回最大元素。实现优先级队列的底层容器通常是vector或deque,其中deque是标准库提供的双端队列容器,支持高效的头尾插入和删除。

weixin_74837455的博客 2325

【Bluetooth蓝牙开发】十一、一文秒懂 | 超详细的Bluez交叉编译

1、开篇词 2、蓝牙开发入门 3、蓝牙协议栈总览 4、蓝牙协议栈——物理层 5、蓝牙协议栈——链路层 6、蓝牙协议栈——传输层 7、蓝牙协议栈——L2CAP协议 8、蓝牙协议栈——ATT协议 9、蓝牙协议栈——GATT协议 10、蓝牙通信流程分析 11、蓝牙协议栈——Bluez交叉编译 12、蓝牙调试工具汇总

Donge's Blog 3977

巧妙解决网页弹窗重复出现问题

本文探讨了网页弹窗关闭后刷新重现的问题及解决方案。通过分析原生JavaScript实现的弹窗代码存在的缺陷,提出了使用jQuery改进的方法。关键点包括:利用event.preventDefault()阻止默认行为避免刷新,采用jQuery的hide("slow")方法实现优雅的关闭动画,确保关闭状态持久化。改进后的方案既解决了弹窗重复出现的问题,又提升了用户体验,为网页弹窗交互提供了更优的实现方式。文中提供了完整的HTML、CSS和JavaScript代码示例,便于开发者直接应用。

2501_90323865的博客 181

C++提高编程——deque容器

/对beg和end区间内元素进行排序。deque的迭代器也是支持随机访问的。

qq_2725的博客 669

【教程4>第6章>第15节】 基于I+jQ复数信号的LS信道估计和均衡实现1——matlab仿真分析,QPSK为例

在基于QPSK调制的通信系统中,LS信道估计和均衡是用于补偿信道失真、提高信号传输质量的重要技术。以下将详细介绍基于I+jQ复数信号的 LS 信道估计和均衡的实现原理与过程。可以看到,通过线性插值之后,QPSK信号的星座图可以模糊的看到四个星座点(图2),通过非线性插值之后,可以清晰的看到QPSK的四个星座点(图3)。可以看到,信道均衡显著提高了通信系统的可靠性和有效性。

FPGA/MATLAB学习教程/源码/项目合作开发 657

C++ deque 容器:平衡双端操作与随机访问的利器

简单来说,需要双端操作选deque;需要尾部操作+强随机访问选vector;需要中间插入删除选list。

2501_93283929的博客 725

道路场景分割:车道线、可行驶区域与路沿检测

道路场景分割:车道线、可行驶区域与路沿检测​ ,人工智能,计算机视觉,大模型,AI,文章围绕道路场景分割展开,涵盖车道线、可行驶区域与路沿检测。介绍了基本概念、重要性,各部分检测的类型、方法、难点及解决思路,还涉及技术融合、数据集、评价指标、发展趋势、应用案例、代码示例、不同天气处理、实际问题与方案、实现流程、相关技术工具、教育研究应用、产业前景、伦理安全问题及学习资源等,全面阐述了道路场景分割的多方面内容,为相关学习和研究提供了丰富信息。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 22万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【C++】容器适配器全知道

容器适配器在 C++ 编程中是非常重要的概念,理解它们的原理、底层结构以及模拟实现方式,有助于我们更好地运用 STL 中的堆栈和队列等数据结构,提高程序的效率和质量😃。希望通过本文的介绍,你对容器适配器有了更全面的认识和理解✨。如果在学习过程中有任何疑问或建议,欢迎随时交流分享哦😉!

A Charmer 的博客 5730

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用容器(deque容器)

deque容器和vector容器的构造方式几乎一致,灵活使用即可。

知不足而奋进,望远山而前行 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C++_deque双端数组

deque双端数组 简介 deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的。 deque在接口上和vector非常相似,在许多操作的地方可以直接替换。 deque可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲)。 deque头部和尾部添加或移除元素都非常快速。但...

weixin_43916755的博客 780

C++提高编程(三)—— STL常用容器(3) :deque容器

3. deque容器3.1 deque容器基本概念3.2 deque构造函数3.3 deque赋值操作3.4 deque大小操作3.5 deque插入和删除3.6 deque数据存取3.7 deque排序 3. deque容器 3.1 deque容器基本概念   功能: 双端数组,可以对头端进行插入删除操作。   deque与vector的区别: 1. vector对于头部的插入删除效率低,数据量越大,效率越低;               2. deque相对而言,对头部的插入删除速度回比vector.

大彤小忆的博客 3497

C++STL标准库——双端队列deque

C++STL标准库——双端队列deque 其实deque的最大特点就是双端,其可以实现队首队尾都插入的功能 对比各种stl容器的存取难度 vector:只能插入在队首,但是提供下标访问方式。⭐️⭐️⭐️ stack:不支持下标访问,存入只能存进栈顶,取出最后一个必须一个一个pop。⭐️ queue:只能插入进队首,不支持下标⭐️⭐️ array:类似数组(几乎就是),支持下标,可在任何地方插入⭐...

被一个OIER遗弃的一堆烂代码 848

深入探索C++ STL中的deque容器:从基础到实践

在C++标准库中,std::deque(双端队列)是一个非常重要的容器。与std::vector和std::list等容器相比,std::deque在插入和删除元素时具有特定的性能优势,尤其是在其两端进行操作时。在这篇博客中,我们将深入探索std::deque的用法、特性、性能以及它在实际编程中的应用。

2301_80211119的博客 4646

C++编程——deque容器

文章目录1 deque容器基本概念2 deque容器构造函数3 deque容器赋值操作4 deque容器大小操作5 deque容器的插入与删除6 deque容器数据存取7 deuqe容器排序 1 deque容器基本概念 功能: 双端数组,可以对头端进行插入删除操作 deque与vector的区别: vector对于头部的插入删除效率低,数据量越大,效率越低(因为vector是单端数据,头插需要将后面的数据向后移动后才能插入,头删的话需要将后面的数据向前移动) deque相对而言,对头部的插入删除速度会

professor_tao的博客 625

C++提高编程--STL常用容器(vector容器、deque容器)详解

本文摘要: 本文介绍了C++ STL中vector容器的基本概念和常用操作。vector是一种动态数组,支持随机访问迭代器。主要内容包括:1) vector构造函数,如默认构造、区间构造、拷贝构造等;2) 赋值操作,包括operator=和assign方法;3) 容量和大小操作,如empty()、capacity()、size()和resize();4) 插入和删除操作,如push_back()、pop_back()、insert()、erase()等;5) 数据存取方法,包括at()、operator[]

m0_71676523的博客 832

c++编程(18)——deque的模拟实现(2)容器篇

欢迎来到博主的专栏——c++编程博主ID:代码小豪。

2301_77239666的博客 1465

C++提高编程——STL:deque容器、stack容器和queue容器

deque容器和vector容器的构造方式几乎一致,灵活使用即可。

weixin_63866037的博客 1151

C++三种容器:list、vector和deque的区别

在写C++程序的时候会发现STL是一个不错的东西,减少了代码量,使代码的复用率大大提高,减轻了程序猿的负担。还有一个就是容器,你会发现要是自己写一个链表、队列,或者是数组的时候,既要花时间还要操心怎么去维护,里面的指针啊,内存够不够用啊,长度问题,有没有可能溢出啊等等一系列的问题等着我们去解决,还是比较头疼的。所以容器的出现解决了这一个问题,它将这些数据结构都封装成了一个类,只需要加上头文件,我们就可以轻松的应用,不用那么复杂,就连指针也被封装成了迭代器,用起来更方便,更人性化,方便了我们的编程、、、、

行而不辍,未来可期 - King 6万+
上一篇: 【C++编程】vector 存放内置、自定义数据类型
下一篇: 【C++编程】数组 vector 容器基本操作
CODE_RabbitV
博客等级 码龄7年 2930粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值