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

【C++——迭代器】

概述

迭代器用在顺序容器中,比如:list,vector,map这些。

迭代器和指针用法类似,可以用*解引用,但是本质上不是指针。

迭代器类型:

常量迭代器只能读容器,不能改。但是迭代器自身还是可以操作的:++等。

普通迭代器:

vector<int>::iterator i = v.begin();

//常量
vector<int>::const_iterator  i = v.cbegin();

反向迭代器:

//非常量
vector<int>::reverse_iterator r= v.rbegin();

//常量
vector<int>::const_reverse_iterator cr = v.crbegin();

注意事项

在遍历容器的时候,不要修改容器,比如追加(push_back)等。会造成迭代器失效。

vector<int>v = { 1,2,3 };
for (auto i = v.begin(); i != v.end(); i++)
{
	cout << *i << endl;
	v.push_back(*i + 1);
}

迭代器运算:

++,--,+n,-n

关系运算符:>,<,>=,<=,==就是根据迭代器在“同一个容器”中的位置来判断


http://www.kler.cn/a/449290.html

相关文章:

  • 突发!!!GitLab停止为中国大陆、港澳地区提供服务,60天内需迁移账号否则将被删除
  • alertmanager告警持久化方案:alertsnitch
  • Docker搭建kafka环境
  • Windows开启IIS后依然出现http error 503.the service is unavailable
  • 工业摄像机基于电荷耦合器件的相机
  • 深入解析 Spring Bean 配置与装配:从基础到进阶的实用指南
  • 安科瑞能源物联网平台在老旧小区用电安全改造中的应用与优势
  • HTML+CSS+JS制作汽车网站(内附源码,含5个页面)
  • LLM与金融
  • Python绘制图表
  • SpringBoot3-第一篇(快速入门)
  • Source Insight 导入代码库 观察linux源码
  • canvas绘制仪表盘刻度盘
  • WorkManager
  • Centos8安装源出错 设置基础软件仓库出错(已解决-秒解)
  • ubuntu 安装docker
  • 【枚举】假币问题
  • 《Vue进阶教程》第十六课:深入完善响应式系统之单例模式
  • 从0到1手写实现Event Emitter
  • 关于Buildroot如何配置qtwebengine [未能成功编译]
  • 面试题整理15----K8s常见的网络插件有哪些
  • 对于其他管理的理解(中)
  • 【Flink-scala】DataSet编程模型介绍及数据源
  • Pytorch | 从零构建ParNet/Non-Deep Networks对CIFAR10进行分类
  • 在FreeRTOS中动态创建任务,假如在最后一个参数写NULL,该任务有任务句柄吗
  • 安装管理docker