zoukankan      html  css  js  c++  java
  • 迭代器

    1.迭代器的概念

    1)迭代器(iterator)是一种用来索引容器内元素的数据类型

    2)迭代器不是指针是类模版,表现像指针。它模拟了一些指针的功能, 通过重载指针的一些操作符。本质是封装了原生指针,相当于指针的一种升级。

    3)即使是vector,它的迭代器定义如下,也不能说它就是普通指针,vector的迭代器不能相互比较,而指针可以

    2.迭代器的种类

    根据迭代器所支持的操作,可以把迭代器分为5类:

    1)   输入迭代器:是只读迭代器,可以读取容器中的元素

    2)   输出迭代器:是只写迭代器,可以写容器中的元素

    3)   前向迭代器:兼具输入和输出迭代器的能力,但它不支持operator--,只能向前移动

    4)   双向迭代器:前向迭代器的加强,即可向前又可向后移动

    5)   随机访问迭代器:有双向迭代器的所有功能,而且,它还涵盖了迭代器的所有算术能力,可进行随机访问,随意移动指定的步数

    2.3迭代器支持的运算

    1)所有迭代器

    p++                                                     后置自增
    ++p                                                     前置自增

    2)输入迭代器

    *p                                                        解引用运算符,作为右值

    p->member等价于(*p).member    箭头运算符,提取对象的某成员
    p=p1                                                    赋值
    p==p1                                                  比较相等
    p!=p1                                                   比较不等

    3)输出迭代器

    *p                                                        解引用,作为左值
    p=p1                                                    赋值

    4)  前向迭代器

      支持输入输出迭代器的所有运算

    5)双向迭代器
    --p                                                       前置自减
    p--                                                       后置自减

    6)随机迭代器

    <,<=,>,>=                              两个迭代器比较相对位置
    +,+=,-,-=                                              迭代器和一个整数的加减运算,两个迭代器相减
    p[n]                                                      下标运算,返回p偏离n指向的元素

    2.4各容器支持的迭代器

    vector                    随机

    list                         双向

    slist         前向           

    deque                    随机

    stack                     不支持                       

    queue                    不支持

    heap                      不支持

    priority_queue        不支持    

    set、multiset           双向                                             

    map、multimap       双向

    unordered_map、unordered_set、unordered_multimap、unordered_multiset  双向

    hashtable      前向                      

    2.4迭代器失效

  • 相关阅读:
    使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
    HTTP协议详解(真的很经典)
    C# 读取EXCEL文件的三种经典方法
    第一范式,第二范式,第三范式
    数据库设计三大范式
    SQL 第一范式、第二范式、第三范式、BCNF
    日期选择器:jquery datepicker的使用
    copy sqlserver中DATE类型的数据转化 CONVERT
    HDU2033 人见人爱A+B 分类: ACM 2015-06-21 23:05 13人阅读 评论(0) 收藏
    SCU 4440 分类: ACM 2015-06-20 23:58 16人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/Joezzz/p/10363031.html
Copyright © 2011-2022 走看看