【C++:list】

list概念

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

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

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

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

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

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

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

相关推荐
橘颂TA6 小时前
【笔试】算法的暴力美学——牛客 NC213140 :除2!
c++·算法·结构与算法
三道渊6 小时前
进程通信与网络协议
开发语言·数据库·php
白露与泡影6 小时前
Java面试题库及答案解析(2026版)
java·开发语言·面试
wsoz7 小时前
Leetcode普通数组-day5、6
c++·算法·leetcode·数组
favour_you___7 小时前
2026_4_8算法练习题
数据结构·c++·算法
疯狂成瘾者7 小时前
Chroma向量数据库
开发语言·数据库·c#
我是唐青枫7 小时前
C#.NET Monitor 与 Mutex 深入解析:进程内同步、跨进程互斥与使用边界
开发语言·c#·.net
bbq粉刷匠7 小时前
Java--剖析synchronized
java·开发语言
ou.cs7 小时前
c# 信号量和锁的区别
开发语言·c#
Gofarlic_OMS7 小时前
装备制造企业Fluent许可证成本分点典型案例
java·大数据·开发语言·人工智能·自动化·制造