当前位置: 首页 > news >正文

C++STL-deque

一.基础概念

        deque和vector一样都是对元素的操作,不同点:vector对元素增删后元素会往前或往后移,如果数据不大没有太多影响,如果数据很大效率会变低;deque对元素增删不会使元素位置改变,所有效率会变高。

二.基本用法

1.deque对象创建

1. 默认构造函数deque<int> d1;
2. 初始化列表

deque<int> d2_1({ 9,8,8,6, 5 });

deque<int> d2_2 = { 1,8,8,8, 5 };

3. 迭代器deque<int> d3(d2_1.begin()+1, d2_1.end()-1);
4. 全0初始化deque<int> d4(10);
5. deque<int> 变量名(a,b)   代表申请a个元素空间,每个元素的值初始化bdeque<int> d5(8, 6);
 6. 拷贝构造函数deque<int> d6(d5);

2.deque赋值操作

deque<int> d = { 9,8,5,2,1,1 };
 1. = 赋值deque<int> d1;
d1 = d;
2. assign(迭代器)deque<int> d2;
d2.assign(d1.begin()+1, d1.end());
3. 初始化列表deque<int> d3;
d3.assign({ 1,2,3,5,6,7 });
4. 初始化 a 个 bdeque<int> d4;
d4.assign(8, 6);

3.deque大小操作

1.empty,判断是否为空,如果是空返回1,不为空返回0

deque<int> d;

d.empty()

2.size,元素个数d.size()
3.resize,扩容处理

d.resize(18);//扩容到18个

d.resize(20, 6);//扩容到20个,多余全部变成6

4.deque数据插入

1、push_frontd.push_front(-1);
2、push_backd.push_back(1);
3、insert

d.insert(d.begin() + 3, 0);//第3个位置插0

d.insert(d.end() - 1, 5, 8);//在倒数第二个位置插5个8

d.insert(d.begin() + 1, d.begin() + 4, d.begin() + 6);//在第二个位置插入4-6位置元素

5.deque数据删除

1、pop_frontd.pop_front();
2、pop_backd.pop_back();
3、erase

 d.erase(d.begin() + 2)//删除第2个元素

d.erase(d.begin() + 1, d.begin() + 3);//删除2-3元素

4.clear,全部删除d.clear();

6.deque数据访问

d[2] 和数组访问一样
d.at(2)和数组访问一样
d.front()
d.back()

http://www.lryc.cn/news/584471.html

相关文章:

  • 微算法科技的前沿探索:量子机器学习算法在视觉任务中的革新应用
  • Unity WebGL文本输入
  • 学习开发之条件函数
  • 二进制部署CentOS8.5+Kubernetes1.33.2+Docker28.3.1高可用集群
  • pdf_copy.ahk
  • 醋酸镨:闪亮的稀土宝藏,掀开科技应用新篇章
  • 软考(软件设计师)计算机网络-物理层,数据链路层
  • Android 如何阻止应用自升级
  • 如何使用python实现多个word文档格式进行修改
  • Android 15 Settings 搜索框:引入关键字过滤功能
  • uni-app X APP在线升级 解决【uni-upgrade-center-app】未配置uni-upgrade-center 问题
  • 20250710解决KickPi的K7的SDK编译异常:rk3576-android14.0-25250704.tar.gz【降低BUILD_JOBS】
  • 独立服务器选择Rocky Linux还是CentOS
  • 征程 6M 部署 Omnidet 感知模型
  • 微信小程序101~110
  • Kettle导入Excel文件进数据库时,数值发生错误的一种原因
  • 【大模型推理论文阅读】Enhancing Latent Computation in Transformerswith Latent Tokens
  • 【React】MQTT + useEventBus 实现MQTT长连接以及消息分发
  • Xavier上安装RTSP服务端教程
  • React封装过哪些组件-下拉选择器和弹窗表单
  • 虚拟项目[3D物体测量]
  • SpringBoot整合腾讯云新一代行为验证码
  • 【Note】Linux Kernel 实时技术深入:详解 PREEMPT_RT 与 Xenomai
  • 【TCP/IP】12. 文件传输协议
  • 堆的应用(讲解超详细)
  • 【AI大模型】LLM模型架构深度解析:BERT vs. GPT vs. T5
  • 基础 IO
  • 常见射频电路板工艺流程
  • 如何在VMware里的飞牛OS访问主机里面图片文件夹
  • C语言易错点整理(一)