当前位置: 首页 > 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.dtcms.com/a/272942.html

相关文章:

  • 1. COLA-DDD的实战
  • 【基础架构】——软件系统复杂度的来源(低成本、安全、规模)
  • 告别卡顿与慢响应!现代 Web 应用性能优化:从前端渲染到后端算法的全面提速指南
  • IDEA运行Spring项目报错:java: 警告: 源发行版 17 需要目标发行版 17,java: 无效的目标发行版: 17
  • Cargo.toml 配置详解
  • 【科研绘图系列】R语言探索生物多样性与地理分布的可视化之旅
  • 网安-解决pikachu-rce乱码问题
  • 访问Windows服务器备份SQL SERVER数据库
  • (C++)任务管理系统(文件存储)(正式版)(迭代器)(list列表基础教程)(STL基础知识)
  • x86交叉编译ros 工程给jetson nano运行
  • Rust and the Linux Kernel
  • Sophix、Tinker 和 Robust 三大主流 Android 热修复框架的详细对比
  • windows10 安装docker到H盘
  • Linux 服务器挖矿病毒深度处理与防护指南
  • 使用Docker将Python项目部署到云端的完整指南
  • Web 会话认证方案详解:原理、流程与安全实践
  • Variables
  • 分库分表之实战-sharding-JDBC分库分表执行流程原理剖析
  • ubantu问题手册
  • 大数据学习5:网站访问日志分析
  • 力扣hot100速通(7.9)|49.字母异位词分组 128.最长连续序列 283.移动零 11.盛最多水的容器 42.接雨水
  • 观成科技:基于自监督学习技术的恶意加密流量检测方案
  • CRMEB Pro版前端环境配置指南
  • AT9850B北斗双频导航定位芯片简介
  • 基于大数据的电力系统故障诊断技术研究
  • 华为鸿蒙HarmonyOpenEye项目:开眼App的鸿蒙实现之旅
  • SSRF(ctfshow)
  • 【第三章-基础】Python 字典
  • 3D Surface Reconstruction with Enhanced High-Frequency Details
  • 【成长】-进步论