• 迭代器


    类似于指针类型,迭代器也提供了对对象的间接访问。就迭代器而言,其对象是容器的元素或者 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
    
    

    迭代器运算

  • 相关阅读:
    PPTP服务器的端口
    Linux ln命令
    Git 学习笔记回到过去版本
    Iptables中SNAT和MASQUERADE的区别
    转移虚拟机后ubuntu network available SIOCSIFADDR: No such device
    用iptables做IP的静态映射
    软件项目管理
    需求工程
    软件工程——理论、方法与实践 之 软件实现
    软件工程——理论、方法与实践 之 软件工程中的形式化方法
  • 原文地址:https://www.cnblogs.com/xiaojianliu/p/12498454.html
Copyright © 2020-2023  润新知