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

C++:迭代器

迭代器的本质:对象。

迭代器与指针类似,通过迭代器可以指向容器中的某个元素,还可以对元素进行操作。

迭代器统一规范了遍历方式。不同的数据结构可以用统一的方式去遍历。

接下来是一个自定义迭代器的代码示例。

#include<iostream>
using namespace std;struct List
{int n;List* pnext;
};void AddNode(List*& rpHead, List*& rpEnd, int n)
{List* ptemp = new List;ptemp->n = n;ptemp->pnext = NULL;if (NULL == rpHead){rpHead = ptemp;}else{rpEnd->pnext = ptemp;}rpEnd = ptemp;
}class Iterator//自定义的一个迭代器
{
private:List* p;
public:Iterator(List* p){this->p = p;}
public:bool operator != (List* p){if (this->p != p){return true;}else{return false;}}int operator*(){return p->n;}List* operator++(int){List* pTemp = p;p = p->pnext;return pTemp;}
};
int main()
{List* pHead = NULL;List* pEnd = NULL;AddNode(pHead, pEnd, 1);AddNode(pHead, pEnd, 2);AddNode(pHead, pEnd, 3);AddNode(pHead, pEnd, 4);/*while (pHead != NULL)//原本的链表遍历方式{cout << pHead->n << endl;pHead = pHead->pnext;}*/Iterator ite = pHead;while (ite != NULL){cout << *ite << endl;ite++;}return 0;
}

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

相关文章:

  • MongoDB数据库深度解析:架构、特性与应用场景
  • 【强化学习】深度强化学习 - Deep Q-Network(DQN)算法
  • git 修改一个老commit,再把修改应用到所有后续的 commit
  • docker compose 启动指定的 service
  • Elasticsearch 深入分析三种分页查询【Elasticsearch 深度分页】
  • DAY29 超大力王爱学Python
  • Ubuntu 远程桌面配置指南
  • 【Python装饰器深度解析】从语法糖到元编程实战
  • 推扫式高光谱相机VIX-N230重磅发布——开启精准成像新时代
  • Parsec解决PnP连接失败的问题
  • 面试题:详细分析Arraylist 与 LinkedList 的异同
  • 软件I2C
  • 通过实例讲解螺旋模型
  • Brooks Polycold快速循环水蒸气冷冻泵客户使用手含电路图,适用于真空室应用
  • winfrom中创建webapi
  • unity XCharts插件生成曲线图在UICanvas中
  • Pichome 开源网盘程序index.php 文件读取漏洞(CVE-2025-1743)
  • 关于在Unity项目中使用Post Processing插件打包到web端出现的问题
  • Prompt Tuning:高效微调大模型的新利器
  • OpenCV 第6课 图像处理之几何变换(重映射)
  • C++初阶-vector的底层
  • 获取文件夹下所有文件的名称
  • C语言指针深入详解(五):回调函数、qsort函数
  • 数据结构进阶:AVL树与红黑树
  • 容器化-K8s-镜像仓库使用和应用
  • 基于Spring Boot + Vue的教师工作量管理系统设计与实现
  • 预先学习:构建智能系统的 “未雨绸缪” 之道
  • 完善网络安全等级保护,企业需注意:
  • Trae 04.22版本深度解析:Agent能力升级与MCP市场对复杂任务执行的革新
  • OceanBase 开发者大会:详解 Data × AI 战略,数据库一体化架构再升级