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

C++_List_调用及模拟实现

【本节目标】1. list的介绍及使用2. list的深度剖析及模拟实现3. list与vector的对比1.List的介绍及使用1.1 初始List1.2 reverse1.3 基于iterator迭代的分类1.4 sort输出结果1.5 对比_STL中vector和List的排序效率示例输出结果总结我们从排序时间上可以看出链表确实是不适合排序的即便从链表导出到顺序表排序完后再导入回来在时间上依旧和链表排序相差无几所以后续如果需要存储有序的数据还是顺序表更为合理。1.6 splice示例输出结果引言基于我们前面学习以及模拟实现的数据结构所以在STL_list中我们将不会过多使用成员函数下面就直接开始模拟实现STL_list。2. list的深度剖析及模拟实现链表节点类的准备2.1 list类_声明2.2 模拟实现_empty_init()2.3 模拟实现_构造函数2.4 模拟实现_push_back()基于insert()写法2.5 模拟实现_基于Insert()的push_front()2.6 模式实现_基于erase()的pop_back()2.7 模式实现_基于erase()的pop_front()2.8 模拟实现_clear()2.9 模拟实现_析构函数2.10 模拟实现_const和非const_begin()2.10.1 非const_begin()2.10.2 const_begin()2.11 模拟实现_const和非const_end()2.11.1 非const_end()2.11.2 const_end()2.12 模拟实现_基于list_node类的const和非const的迭代器_list_iterator类以及_list_const_iterator类2.12.1 _list_iterator实现效果2.12.2 _list_const_iterator实现效果2.12.3 将const和非const合并避免冗余在list模板类下对于**_list_iterator模板类**的typedef合并实现2.13 模拟实现_insert()2.14 模拟实现_erase()2.15 模拟实现_拷贝构造函数注意非const类可以调用const及非const成员函数2.16 模拟实现_operator()示例2.17 拓展区分拷贝构造函数和赋值重载拷贝初始化 vs 赋值运算符的调用时机拷贝初始化如Type obj expr;发生在对象创建时用一个已有对象初始化新对象。此时编译器会优先调用 拷贝构造函数如果存在而非赋值运算符。例如listint lt2 lt;是在创建 lt2 时用lt初始化它属于拷贝初始化。赋值操作如obj expr;发生在对象已经存在后将一个已有对象的值赋给另一个已存在的对象。此时调用赋值运算符operator。例如lt2 lt;假设lt2已经被构造过才会调用赋值运算符。2.18 模拟实现_swap()基于swap()实现赋值重载2.19 模拟实现_size()2.20 模拟实现_基于自定义类型作为数据实现插入与遍历但是这样的写法与我们封装的理念不太一样所以我们通用operator-实现输出。2.20.1 模拟实现_operator-示例但是这里产生了问题按我们的理解it-_A1应该返回的是成员结构体的地址为什么就能达到输出数据的效果了呢个人的写法其实本来是要写出it--_A1这样才能输出数据但是由于可读性较差所以编译器特殊处理省略了一个-。后面的成员函数其实和前面vector、string基本一致所以也就不往下面写了交给各位根据前面的内容自由发挥。本章完~
http://www.zskr.cn/news/1401492.html

相关文章:

  • TaskbarX终极指南:如何通过开源工具重新定义Windows任务栏体验
  • 海南宗开实业:儋州专业的彩钢瓦出售公司有哪些 - LYL仔仔
  • 长上下文实践反思:百万Token管道为何导致AI输出质量下降?
  • 应届生求职避坑指南:从Offer到劳动合同的完整解析与风险防范
  • WarcraftHelper完整指南:解锁魔兽争霸3性能与兼容性的终极解决方案
  • 多智能体协作实战:框架选型vs自研,企业到底怎么选?
  • NBTExplorer终极指南:3分钟掌握Minecraft数据编辑神器
  • 2026年做什么最赚钱?靠谱副业推荐首选:卡立方号卡平台,普通人轻资产创收最优解 - 博客万
  • AI记忆技术:从向量数据库到智能体,如何突破上下文限制实现个性化
  • 用VTK Glyph3D为流线图注入方向感
  • 如何快速提升Windows多任务效率:终极窗口管理工具AlwaysOnTop完全指南
  • 解锁智能挂机新境界:探索碧蓝航线全自动脚本的颠覆性体验
  • 3分钟免费激活Windows:智能激活工具终极指南
  • 多模态大模型技术原理与融合机制深度解析
  • 如何突破植物大战僵尸传统玩法限制:PvZ Toolkit完整解决方案
  • 2026武夷山市本地黄金+铂金+白银+K金回收渠道实地走访,五家实力门店综合体验测评 - 亦辰小黄鸭
  • 终极键盘映射神器Hitboxer:解决游戏操作冲突的完整指南
  • 如何高效下载B站大会员视频:5分钟快速上手完整指南
  • Tiktokenizer:OpenAI令牌计算的终极可视化工具指南
  • 保姆级教程:从零搞定Sentinel-2 L2A数据下载与Python读取(附避坑指南)
  • 三步掌握微信聊天记录永久保存:免费开源工具完全指南
  • 从零构建Minecraft 1.16.5服务器与Python自动化开发环境
  • DeepSeek永久降价,这事没你想的那么简单
  • Java枚举类的底层实现与高级用法
  • 点云数据处理技术梳理
  • 为Claude Code配置Taotoken密钥与基地址以解决封号困扰
  • PowerBuilder 12.5实战:从零构建企业级应用
  • DBeaver 驱动下载慢 DBeaver 驱动下载失败 DBeaver 镜像加速
  • Vex:免费开源的 .NET + Avalonia 跨平台 Markdown 编辑器
  • 联盛德 HLK-W806 (十二): 深度解析ST7567驱动配置与图形绘制优化