iterator_教程中的讲解
ZC: 在讲 vector的时候讲到的
1、分类:
(1)、输入(只读) 只支持一遍算法
(2)、输出(只写) 只支持一遍算法
(3)、正向 可对一个值进行多次读写 ==> 相当于 输入迭代器+输出迭代器 的功能组合
(4)、双向 正向迭代器+向后? 应该既能向前又能向后移动吧(但是一次只能移动一个位置)?
(5)、随机 双向迭代器+向前/向后跳过任意个位置.任何位置
2、支持的操作:
①双向迭代器
it++, +it, it--, --it, *it,
itA=itB, itA==itB, itA!=itB
◆ list, set, multiset, map, multimap 支持双向迭代器
②随机迭代器
双向迭代器 的所有操作
其它的操作:
it+=i, it-=i, it+i(或it=it+i)(ZC: 这两货不一样吧?), it[i],
itA<itB, itA<=itB, itA>itB, itA>=itB
◆ vector deque(queue,stack) 支持随机访问迭代器
3、
++it 返回 引用 效率高
it++ 返回 值 效率低
4、
通过 “iterator == 容器实例.end()” 来判断 迭代器是否指向了 最后一个元素的后面
ZC: “reverseIterator == 容器实例.rend()”
4.1、在循环中,用“iterator == 容器实例.end()”来作为 循环是否结束的依据。
4.2、在 if 中,用“iterator == 容器实例.end()”来判断 返回的 iterator 是否为空。
5、
vector<T>::const_iterator
vector<T>::const_reverse_iterator
vector<T>::iterator
vector<T>::reverse_iterator
5.1、容器中的 insert(...) 和 erase(...) 仅接受 iterator
5.2、<<Effective STL>>中建议,用 iterator 取代另外3种
6、
ZC: 第7讲【39:40】左右,iterator作为参数时,注意 "++it"和"it++"的区别,别用错了。前者是 自增之后再传入函数,后者是先传入函数 等函数运行结束之后再自增。
7、数组指针 ==> iterator
类似 “vector<T> vecT(iteratorBegin, iteratorEnd);”这样的构造函数,构造函数的参数 可以传数组指针。数组指针在特定情况下可以当做迭代器使用。
8、
iterator_教程中的讲解的更多相关文章
- i3D的一篇Unity教程中的笔记
原地址:http://blog.sina.com.cn/s/blog_72b936d80100wwej.html 以下是i3D的一篇Unity教程中的笔记. i3D的这篇教程是[i3D.Next-Ge ...
- Teradata基础教程中的数据库试验环境脚本
Teradata基础教程中的数据库表: Customer: 客户信息表 Location: 位置信息表 Employee: 雇员信息表 Job: 工作信息表 Department: 部门表 ...
- Swift语言教程中文文档
Swift语言教程中文文档 Swift语言教程(一)基础数据类型 Swift语言教程(二)基础数据类型 Swift语言教程(三)集合类型 Swift语言教程(四) 集合类型 Swift语言教程(五)控 ...
- GEF-whole-upload教程中遇到的问题及解决方案
最近在学习GEF开发,使用的是GEF-whole-upload这个教程.由于教程当时所使用的版本与本人使用的版本有一些差异,中间出现了不少问题,现在将解决方案分享给大家. 本人使用的Eclipse版本 ...
- [转]11个教程中不常被提及的JavaScript小技巧
原文地址: https://www.cnblogs.com/ld1024/p/10723827.html 这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日 ...
- 简明的Python教程中的几个疑惑点分析#2
#1简明的Python教程当中第十四章Python标准库介绍中的使用sys模块 假如你没看懂sys模块这一章节,那么没关系,看下面一段代码再看简明的Python教程中的sys模块实例你将很容易看懂 代 ...
- 11个教程中不常被提及的JavaScript小技巧
这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日常工作中经常出现,但是我们又很容易忽略. 1.过滤唯一值 Set类型是在ES6中新增的,它类似于数组,但是 ...
- Django 基础教程中的Django表单
在 urls.py 中对应写上这个函数,教程中给的Django 1.7x以下的,我的时2.0.7,应该为 from django.contrib import admin from django.ur ...
- MVC4学习之官方教程中迁移版本库报错
因工作需要,学习MVC4,但是微软官方教程中迁移版本库步骤在本地测试报错 官方教程地址:http://www.asp.net/mvc/overview/older-versions/getting-s ...
随机推荐
- gerrit 使用教程(一)
原文地址:https://www.jianshu.com/p/b77fd16894b6 1, Gerrit是什么? Gerrit实际上一个Git服务器,它为在其服务器上托管的Git仓库提供一系列权限控 ...
- iOS 界面启动时,功能新特征显示
APP新启动的时候,都会有几张新的图片滑动,才能到主的界面.现在,我们新建一个控制器,专门来处理新特性,直接上代码. 第一步:新建一个NewfeatureController // // HWNewf ...
- [转]Visual C++ RunTime的特征——非烫即屯
Visual C++ RunTime的特征——非烫即屯 大一刚学C语言,第二次上机课,当我发现我照着书抄写的程序在运行之外的黑框里面跳出一排“烫烫烫烫烫”,当时就震惊了.你们能想象一个来自小城, 在大 ...
- hexo修改Next主题的样式
Next主题默认对超链接只有下划线样式,很容易被忽略,就想着怎么修改下 主题样式是在\hexoBlog\themes\next\source\css,这里面保存了Muse,Mist和Pisces三个主 ...
- 错误处理:WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
今天在配置用户权限管理的时候,遇到了这么个错误: WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping.请添加一个名为 ...
- Azkaban学习笔记(二)
官方文档:http://azkaban.github.io/ 一.Azkaban主要的组成: 1. 关系型数据库——MySQL 2. AzkabanWebServer 3. AzkabanExcuto ...
- js 内置对象和方法 示例
JS内置函数不从属于任何对象,在JS语句的任何地方都可以直接使用这些函数.JS中常用的内置函数如下: 1.eval(str)接收一个字符串形式的表达式,并试图求出表达式的值.作为参数的表达式可以采用任 ...
- 计算概论(A)/基础编程练习2(8题)/2:计算书费
#include<stdio.h> int main() { // 声明与初始化 ; // k组测试数据的总费用 double s[k]; // 单价表 double price[]= { ...
- PT100高精度测温电路 AD623+REF3030(转)
源: PT100高精度测温电路 AD623+REF3030(很稳定)
- P2455 [SDOI2006]线性方程组(real gauss)
P2455 [SDOI2006]线性方程组 (upd 2018.11.08: 这才是真正的高斯消元模板) 找到所消未知数(设为x)系数最大的式子,把它提上来 把这个式子的 x 系数约成1 把这个式子用 ...