• 迭代器


    类似于指针类型,迭代器也提供了对对象的间接访问。就迭代器而言,其对象是容器的元素或者 string 对象的字符。

    迭代器有有效和无效之分,有效的迭代器指向某个元素或者指向容器尾元素的下一个位置,其它情况都属于无效。

    使用迭代器

    有迭代器的类型同时拥有返回迭代器的成员:

    • begin 成员负责返回指向第一个元素的迭代器。
    • end 成员返回指向容器尾元素下一位置的迭代器。end 成员返回的迭代器称为尾后迭代器。

    迭代器运算符

    迭代器类型

    拥有迭代器的标准库类型使用 iteratorconst_iterator 来表示迭代器的类型。

    vector<int>::iterator it;	//it能读写vector<int>的元素
    string::iterator it2;	//it2能读写string对象中的元素
    
    vector<int>::const_iterator it3;	//it3只能读元素,不能写元素
    string::const_iterator it4;		//it4只能读元素,不能写元素
    

    begin 和 end 运算符

    beginend 返回的具体类型由对象是否是常量决定,如果对象是常量,beginend 返回const_iterator,如果对象不是常量,返回 iterator

    vector<int> v;
    const vector<int> cv;
    
    auto it1 = v.begin();	//it1的类型是vector<int>::iterator
    auto it2 = cv.begin();	//it1的类型是vector<int>::const_iterator
    

    为了便于专门得到 const_iterator 类型的返回值,C++11引入了两个新的函数:cbegincend

    vector<int> v;
    auto it = v.cbegin(); //it是vector<int>::const_iterator
    
    

    迭代器运算

  • 相关阅读:
    软工假期预习作业1
    2号团队-团队任务4:每日立会(汇总)
    2号团队-团队任务4:每日立会(2018-11-26)
    2号团队-团队任务4:每日立会(2018-11-27)
    第二小组首次会议记录
    第二次作业
    自我介绍+课后作业1:准备
    Linux安装redis
    Redis面试题
    Mybatis面试题
  • 原文地址:https://www.cnblogs.com/xiaojianliu/p/12498454.html
Copyright © 2020-2023  润新知