【C++:list】

list概念

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

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

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

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

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

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

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

相关推荐
weixin_3077791310 分钟前
使用C#配置信息类的属性生成Snowflake CREATE STAGE语句
开发语言·数据仓库·hive·c#
疾跑哥布林升级版13 分钟前
C++---day7
开发语言·c++·算法
东方窅瞳17 分钟前
MDX语言的云计算
开发语言·后端·golang
honey ball1 小时前
EMC内参二(1-33页)学习【技术进阶】
开发语言·单片机·嵌入式硬件·学习
程序员老茶1 小时前
C++:函数
开发语言·c++
郭涤生1 小时前
Chapter 7: Compiling C++ Sources with CMake_《Modern CMake for C++》_Notes
c++·笔记·软件构建
我真的不会C1 小时前
Qt中的多种输出方式,信号与槽的基本使用
开发语言·qt
阿巴阿巴拉1 小时前
Scala相关知识学习总结5
开发语言·学习·scala
fakerth1 小时前
计算机面试八股(自整)
c++·面试
雪山青木1 小时前
php-cgi参数注入攻击经历浅谈
开发语言·网络安全·阿里云·php