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

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;
}

相关文章:

  • c/c++的opencv高斯模糊
  • 超长文本注意力机制如何突破传统 O(n²) 瓶颈
  • 大模型的说谎行为
  • 大模型——多模态检索的RAG系统架构设计
  • OD 算法题 B卷 【最佳植树距离】
  • Nginx配置记录访问信息
  • QT高DPI支持
  • AI人工智能的SGLang、vllm和YaRN大语言模型服务框架引擎的对比
  • HarmonyOS应用开发入门宝典——项目驱动学习法实践
  • 中国机加工的市场概况及冷镦技术对于机加工替代的趋势
  • Java 04 API
  • 深入浅出人工智能:机器学习、深度学习、强化学习原理详解与对比!
  • docker容器知识
  • JIT即时编译器全面剖析:原理、实现与优化
  • Java实现基于bitmap的字符串去重统计
  • Pycharm-jupyternotebook不渲染
  • 工作流引擎-01-Activiti 是领先的轻量级、以 Java 为中心的开源 BPMN 引擎,支持现实世界的流程自动化需求
  • spark-shuffle 类型及其对比
  • Spring AI实现一个简单的问答系统
  • Java程序员从0学AI(二)
  • 6月底将返回中国,旅日大熊猫获颁“感谢状”
  • 宋鹍已任首都机场集团有限公司董事长、党委书记
  • 中国海警就菲向非法“坐滩”仁爱礁军舰运补发表谈话
  • 新四军老战士、苏州市文联原副主席张景坤逝世
  • 上海将完善隔代照料支持措施:建设老幼共享设施、提高科学育儿指导力度
  • 鸿蒙电脑正式发布,余承东:国产软件起步晚,基础弱,探索面向未来的电脑体验