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

【C++:list】

list概念

  • list是一个带头的双向循环链表,
  • 双向循环链表的特色:每一个节点拥有两 个指针进行维护,俩指针分别为prev和next,prev指该节点的前一个节点,next为该节点的后一个节点

list的底层实现中为什么对迭代器单独写一个结构体进行封装? 

list中的原生指针并不能满足迭代器的需要(迭代器需要通过++或者--的操作符对链表进行遍历)于是重新写一个关于迭代器的类,重载操作符,完善迭代器的需求

链表的空间并不是连续的,如果对原生指针进行++操作并不会拿到下一个节点的地址,于是封装一个类,重载运算符

疑问:重载运算符咋个重载?

在顺序表中,迭代器++就能到达下一个空间,但是链表这里到达下一个空间需要用list中的next指针,重载++,--运算符如下:

重载操作符来管理迭代器的行为

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

相关文章:

  • 解锁 Apple M1/M2 上的深度学习力量:安装 TensorFlow 完全指南
  • Apache Iceberg:现代数据湖存储格式的未来
  • 【离散数学·图论】(复习)
  • 【ONLYOFFICE震撼8.1】ONLYOFFICE8.1版本桌面编辑器测评
  • Shell 脚本编程保姆级教程(上)
  • 凸优化相关文章汇总
  • Java鲜花下单预约系统源码小程序源码
  • 网络变压器和RJ45接线的方法
  • Matlab/simulink三段式电流保护
  • OOXML入门学习
  • k8s集群node节点加入失败
  • layui+jsp项目中实现table单元格嵌入下拉选择框功能,下拉选择框可手动输入内容或选择默认值,修改后数据正常回显。
  • 2024年客户体验的几个预测
  • 【C++】动态内存管理new和delete
  • Java面向对象特性
  • odoo17 tree视图添加按钮
  • PreparedStatement 与Statement 的区别,以及为什么推荐使用 PreparedStatement ?
  • wsl ubuntu 安装Anaconda3步骤
  • Vue3响应式 ref全家桶
  • Mac(M1芯片)安装多个jdk,Mac卸载jdk
  • Warning message:package ‘ggplot2’ is not available (for R version 3.2.3)
  • Spring Boot 过滤器和拦截器详解
  • Eureka介绍与使用
  • JVM专题九:JVM分代知识点梳理
  • wireshark常用过滤命令
  • 「全新升级,性能更强大——ONLYOFFICE 桌面编辑器 8.1 深度评测」
  • 线程版服务器实现(pthread_server)
  • js异常处理方案
  • C++文件路径处理2 - 路径拼接路径解析
  • 数据结构5---矩阵和广义表