C++之迭代器
时间:2022-05-06
本文章向大家介绍C++之迭代器,主要内容包括迭代器的概念、迭代器的使用、迭代器类型、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
迭代器的概念
迭代器是用来访问string对象或vector对象的元素的,类似于下标运算和指针。
其对象是容器中的元素或string对象中的字符;
使用迭代器可以访问某个元素,迭代器也能从一个元素移动到另外一个元素。
迭代器的使用
不同于指针,获取迭代器不是使用取地址符,有迭代器的类型同时拥有返回迭代器的成员;
比如,这些类型拥有名为begin和end的成员,begin成员负责返回指向第一个元素(或第一个字符)的迭代器,end成员则负责返回指向容器“尾元素的下一个位置”的迭代器;
如果迭代器为空,则begin和end返回的是同一个迭代器;
标准容器迭代器的运算符
和指针类似,也能通过解引用迭代器来获取它所指向的元素,执行解引用的迭代器必须合法并确实指向着某个元素。
string s("some String");
if (s.begin() !=s.end() ) //确保s非空
{
auto it=s.begin(); //it 表示s的第一个字符
*it=toupper(*it);
}
迭代器类型
begin与end运算符
结合解引用与成员访问操作
解引用迭代器可以获得迭代器所指向的对象(类似与指针)。例如:若it是Vector对象的迭代器,
检查其元素是否为空,只需检查it所指向的字符串是否为空;
(*it).empty(); // it->empty();
某些对vector对象的操作会使迭代器失效
但凡是使用了迭代器的循环体,都不要向迭代器所属的容器添加元素;
迭代器运算
迭代器的算术运算
可以令迭代器和一个整数值相加(或相减),其返回值是向前(或向后)移动了若干个位置的迭代器。
auto mid = vi.begin() + vi.size() / 2; //vi.size()=10,则mid指向元素是vi[10]
if(it<mid) //处理vi前半部分的元素
使用迭代器运算(二分搜索)
代码
指针也是迭代器
指向数组元素的指针拥有更多功能
- Java基础-06.总结二维数组,面向对象
- 04 整合IDEA+Maven+SSM框架的高并发的商品秒杀项目之高并发优化
- 过滤器第一篇【介绍、入门、简单应用】
- 通过pl/sql来格式化sql(r4笔记第63天)
- 程序员如何写出杀手级的简历
- 过滤器第二篇【编码、敏感词、压缩、转义过滤器】
- JSP第二篇【内置对象的介绍、4种属性范围、应用场景】
- Struts2的配置和一个简单的例子
- 监听器第一篇【基本概念、Servlet各个监听器】
- 监听器第二篇【统计网站人数、自定义session扫描器、踢人小案例】
- 通俗易懂的分析如何用Python实现一只小爬虫,爬取拉勾网的职位信息
- JSP第一篇【JSP介绍、工作原理、生命周期、语法、指令、行为】
- 一条执行时间两天半的sql语句简化(r4笔记第62天)
- 05-01总结方法,数组(一维)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- .net core webapi jwt 更为清爽的认证 ,续期很简单(1)
- 用flask来在线管理你的iptables
- Linux Shell命令速查表
- Windows10实现滑动锁屏
- Vue&uni-app在微信浏览器隐藏titleNView的一个方法
- 使用OData服务将SAP C4C自定义BO的TextCollection暴露给外部消费者
- 如何在SAP C4C AdvancedListPane上批量执行若干BO实例的action
- SAP ABAP Webdynpro ALV的link to action的实现方法
- SAP CRM和C4C表格列宽度调整的工作原理
- SAP C4C里如何创建两个具有依赖关系的下拉菜单
- 温故知新——Spring AOP
- tf.random_shuffle 函数
- IndexError: dimension specified as 0 but tensor has no dimensions
- 死磕YOLO系列,YOLOv2的自我修养
- three.js 几何体(二)