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

news2024/11/10 2:16:34

🔥 特点: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/frontpop_back/frontinserteraseclear

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 大小获取:emptysize

vector<int> v1 = {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入门编程,学习编程不再难】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1931739.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一五六、Node+Vue 使用七牛上传图片,并配置个人域名

1. 七牛云ak/sk获取 点击注册&#x1f517;开通七牛开发者帐号如果已有账号&#xff0c;直接登录七牛开发者后台&#xff0c;点击这里&#x1f517;查看 Access Key 和 Secret Key 2. Node.js获取七牛token 安装qiniu npm install qiniu创建空间 Node获取token const qi…

在SpringCloud中如何轻松实现微服务间的通信

在Spring Cloud中&#xff0c;实现微服务间的通信非常简单。Spring Cloud提供了多种方式来进行微服务之间的通信&#xff0c;包括使用RestTemplate、Feign、Ribbon、Eureka等组件。下面我将详细介绍这些方式的使用方法。 使用RestTemplate进行通信&#xff1a; RestTemplate是S…

ECCV2024|GLAD:利用全局和局部自适应扩散模型实现更好的无监督异常检测重建

GLAD&#xff1a;利用全局和局部自适应扩散模型实现更好的无监督异常检测重建 论文标题&#xff1a;GLAD: Towards Better Reconstruction with Global and Local Adaptive Diffusion Models for Unsupervised Anomaly Detection 论文地址&#xff1a;https://arxiv.org/abs/2…

字符串类中的常用方法

1 string对象的创建 静态创建 String s1  "abc";  String s2  "abc";  动态创建 String s3  new String("abc"); String s4  new String("abc"); 2string对象的不可变性 任何一个String对象在创建之后都不能对它的…

blender中设置物体的中心到某个顶点

方式一&#xff1a; 1&#xff0c;首先选中物体&#xff0c; 2&#xff0c;选中编辑模式&#xff0c; 3&#xff0c;选中点模式&#xff0c;并选择物体的一个顶点 4&#xff0c;鼠标点击右键---- 吸附至像素点--游标->选中项&#xff0c;这样&#xff0c;游标移动到了选中…

PulsarClient源码解析

一、Pulsar客户端简析 pulsar服务是经典的C/S架构&#xff0c;由客户端和服务端构成。服务端提供处理读写请求服务&#xff0c;客户端负责发起读写请求。pulsar将客户端按照读写分成了生产者和消费者&#xff0c;但是无论怎么分&#xff0c;它们本质上都是Pulsar客户端并有很多…

QT--控件篇四

一、对话框 在软件开发中&#xff0c;对话框&#xff08;Dialog&#xff09;是一种常见的用户界面元素&#xff0c;用于与用户进行交互和获取信息。它通常以模态或非模态的形式出现&#xff0c;模态对话框会阻止用户与应用程序的其他部分交互&#xff0c;直到对话框关闭为止&a…

快速排序(quick sort)

欢迎来到一夜看尽长安花 博客&#xff0c;您的点赞和收藏是我持续发文的动力 对于文章中出现的任何错误请大家批评指出&#xff0c;一定及时修改。有任何想要讨论的问题可联系我&#xff1a;3329759426qq.com 。发布文章的风格因专栏而异&#xff0c;均自成体系&#xff0c;不足…

nftables(9)NAT、FLOWTABLES

NAT NAT简介 我们在iptables、firewalld中都介绍过有关NAT的相关部分。那么在nftables中&#xff0c;我们继续介绍nftables中NAT的功能实现方式&#xff0c;配置方法和与前两者的区别。 我们先简单回顾一下NAT的类型和其功能&#xff1a; 这些是不同的网络地址转换&#xf…

在 Windows 上开发.NET MAUI 应用_1.安装开发环境

开发跨平台的本机 .NET Multi-platform App UI (.NET MAUI) 应用需要 Visual Studio 2022 17.8 或更高版本&#xff0c;或者具有 .NET MAUI 扩展的最新 Visual Studio Code。要开始在 Windows 上开发本机跨平台 .NET MAUI 应用&#xff0c;请按照安装步骤安装 Visual Studio 20…

leetcode94. 二叉树的中序遍历,递归法+迭代法。附带前序遍历方法

leetcode94. 二叉树的中序遍历 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 示例 2&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[] 示例 3&#xff1a; …

高职综合布线实训室

一、高职综合布线实训室建设背景 随着《国民经济和社会发展第十四个五年规划和2035年远景目标纲要》的深入实施&#xff0c;数字化转型已成为国家发展的核心战略之一&#xff0c;计算机网络技术作为数字化建设的基石&#xff0c;其重要性日益凸显。然而&#xff0c;面对数字时代…

【手撕RLHF-DPO(1)】不是PPO训不起,而是DPO更有性价比!

Introduction Direct Preference Optimization: Your Language Model is Secretly a Reward Model 在LLM对齐问题上&#xff0c;OpenAI提出的RLHF训练范式最为人熟知&#xff0c;同时也是ChatGPT行之有效的对齐方案。 RLHF通常包含三个步骤&#xff1a;SFT, Reward Model, PPO…

【STM32】RTT-Studio中HAL库开发教程三:IIC通信--AHT20

文章目录 一、I2C总线通信协议二、AHT20传感器介绍三、STM32CubeMX配置硬件IIC四、RTT中初始化配置五、具体实现代码六、实验现象 一、I2C总线通信协议 使用奥松的AHT20温湿度传感器&#xff0c;对环境温湿度进行采集。AHT20采用的是IIC进行通信&#xff0c;可以使用硬件IIC或…

Visual Studio使用——在vs中给vb.net项目添加新的窗口:新建的方式、添加已有窗口的方式

目录 引出Visual Studio使用vb添加新的窗体自定义代码片段vs显示所有文件 总结Idea安装和使用0.Java下载 和 IDEA工具1.首次新建项目2.隐藏文件不必要显示文件3.目录层级设置4.Settings设置选择idea的场景提示代码不区分大小写 取消git的代码作者显示 引出 Visual Studio使用—…

trl - 微调、对齐大模型的全栈工具

文章目录 一、关于 TRL亮点 二、安装1、Python包2、从源码安装3、存储库 三、命令行界面&#xff08;CLI&#xff09;四、如何使用1、SFTTrainer2、RewardTrainer3、PPOTrainer4、DPOTrainer 五、其它开发 & 贡献参考文献最近策略优化 PPO直接偏好优化 DPO 一、关于 TRL T…

安全防御,防火墙配置NAT转换智能选举综合实验

目录&#xff1a; 一、实验拓扑图 二、实验需求 三、实验大致思路 四、实验步骤 1、防火墙的相关配置 2、ISP的配置 2.1 接口ip地址配置&#xff1a; 3、新增设备地址配置 4、多对多的NAT策略配置&#xff0c;但是要保存一个公网ip不能用来转换&#xff0c;使得办公区的…

c++入门----类与对象(上)

大家好啊&#xff0c;好久没有更新了。因为本人的愚笨&#xff0c;想与大家分享的话肯定还得自己明白了才能给大家分享吧。所以这几天都在内部消化。好给大家优质的文章。当然我写的肯定还是很有问题的&#xff0c;希望大家可以在评论区里面指出来。好&#xff0c;废话不多说&a…

LabVIEW 与 PLC 通讯方式

在工业自动化中&#xff0c;LabVIEW 与 PLC&#xff08;可编程逻辑控制器&#xff09;的通信至关重要&#xff0c;常见的通信方式包括 OPC、Modbus、EtherNet/IP、Profibus/Profinet 和 Serial&#xff08;RS232/RS485&#xff09;。这些通信协议各有特点和应用场景&#xff0c…

从图表访问Data Store Memory

Simulink模型将全局变量实现为数据存储&#xff0c;可以是数据存储内存块&#xff0c;也可以是Simulink.Signal的实例。您可以使用数据存储在多个Simulink块之间共享数据&#xff0c;而无需显式的输入或输出连接来将数据从一个块传递到另一个块。Stateflow图表通过符号化地读取…