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_教程中的讲解的更多相关文章

  1. i3D的一篇Unity教程中的笔记

    原地址:http://blog.sina.com.cn/s/blog_72b936d80100wwej.html 以下是i3D的一篇Unity教程中的笔记. i3D的这篇教程是[i3D.Next-Ge ...

  2. Teradata基础教程中的数据库试验环境脚本

    Teradata基础教程中的数据库表: Customer:  客户信息表 Location:  位置信息表 Employee:  雇员信息表 Job:  工作信息表 Department:  部门表 ...

  3. Swift语言教程中文文档

    Swift语言教程中文文档 Swift语言教程(一)基础数据类型 Swift语言教程(二)基础数据类型 Swift语言教程(三)集合类型 Swift语言教程(四) 集合类型 Swift语言教程(五)控 ...

  4. GEF-whole-upload教程中遇到的问题及解决方案

    最近在学习GEF开发,使用的是GEF-whole-upload这个教程.由于教程当时所使用的版本与本人使用的版本有一些差异,中间出现了不少问题,现在将解决方案分享给大家. 本人使用的Eclipse版本 ...

  5. [转]11个教程中不常被提及的JavaScript小技巧

    原文地址: https://www.cnblogs.com/ld1024/p/10723827.html 这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日 ...

  6. 简明的Python教程中的几个疑惑点分析#2

    #1简明的Python教程当中第十四章Python标准库介绍中的使用sys模块 假如你没看懂sys模块这一章节,那么没关系,看下面一段代码再看简明的Python教程中的sys模块实例你将很容易看懂 代 ...

  7. 11个教程中不常被提及的JavaScript小技巧

    这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日常工作中经常出现,但是我们又很容易忽略. 1.过滤唯一值 Set类型是在ES6中新增的,它类似于数组,但是 ...

  8. Django 基础教程中的Django表单

    在 urls.py 中对应写上这个函数,教程中给的Django 1.7x以下的,我的时2.0.7,应该为 from django.contrib import admin from django.ur ...

  9. MVC4学习之官方教程中迁移版本库报错

    因工作需要,学习MVC4,但是微软官方教程中迁移版本库步骤在本地测试报错 官方教程地址:http://www.asp.net/mvc/overview/older-versions/getting-s ...

随机推荐

  1. Django-made基础

    知识预览 ORM 创建表(建立模型) 添加表记录 查询表记录 修改表记录 删除表记录 回到顶部 ORM 映射关系: 表名 <-------> 类名 字段 <-------> 属 ...

  2. Twitter OA prepare: Two Operations

    准备T家OA,网上看的面经 最直接的方法,从target降到1,如果是奇数就减一,偶数就除2 public static void main(String[] args) { int a = shor ...

  3. JavaScript循环练习2

    折纸:折多少次和珠穆朗玛峰一样高1.一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度8848米 var hou = 0.0001; var cishu = 0; for(var i= ...

  4. 对使用wordpress做开发的童鞋的提醒

    [1.]WordPress 4.7.2 以及之前的所有版本都存在以下6个安全问题:记得及时升级啊. 通过媒体文件的元数据的跨网站脚本(XSS)控制字符可以欺骗重定向网址验证管理员可以使用插件删除功能删 ...

  5. HDU 6390 GuGuFishtion

    题意: 计算: \[\sum\limits_{a = 1}^{m}\sum\limits_{b = 1}^{n} \frac{\varphi(ab)}{\varphi(a)\varphi(b)} (\ ...

  6. python 跳过可迭代对象的开始部分

    想遍历一个可迭代对象,但是它开始的某些元素你并不感兴趣,想跳过它们 itertools 模块中有一些函数可以完成这个任务.首先介绍的是itertools.dropwhile() 函数.使用时,你给它传 ...

  7. Q-learning简明实例Java代码实现

    在<Q-learning简明实例>中我们介绍了Q-learning算法的简单例子,从中我们可以总结出Q-learning算法的基本思想 本次选择的经验得分 = 本次选择的反馈得分 + 本次 ...

  8. python 类的私有方法例子

    #coding=utf-8 class Person(object):    id=12    def __init__(self,name):        self.name=name       ...

  9. EasyUI+bootsrtap混合前端框架

    EasyUI+bootsrtap混合前端框架 http://www.jeasyui.com/download/index.php用户没有登录前浏览的页面用bootsrtap框架用户登录进去后的商家管理 ...

  10. IDEA上传代码到码云