【C++:list】

list概念

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

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

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

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

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

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

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

相关推荐
星月心城2 分钟前
八股文-JavaScript(第一天)
开发语言·前端·javascript
Thomas_YXQ3 分钟前
Unity3D的委托和事件的用法详解
java·开发语言
编程小Y6 分钟前
Bash 替换机制
开发语言·chrome·bash
我要学脑机8 分钟前
一个图谱映射到功能网络yeo7或17的解决方案
开发语言·网络·php
坐吃山猪15 分钟前
Python之PDF小工具
开发语言·python·pdf
代码栈上的思考16 分钟前
MyBatis——动态SQL讲解
java·开发语言·数据库
王柏龙20 分钟前
c# aggregate使用
开发语言·c#
小鸡吃米…21 分钟前
Python - 构造函数
开发语言·python
moonquakeTT21 分钟前
C++:智能指针
开发语言·c++
hoiii18722 分钟前
基于MATLAB实现无监督数据建模
开发语言·matlab