迭代器

迭代器是一种对象,用于对STL容器的元素进行迭代处理。

它指向容器内部的特定位置,并提供以下基本运算符:

运算符 作用
++ 让迭代器指向至下一元素
==、!= 判断两个迭代器是否指向同一位置并返回结果
= 将右侧的值带入左侧迭代器所引用元素的位置
* 返回该位置的元素

迭代器的优势在于,对任何种类的容器都可以用同一种方法(语法)顺次访问其元素。

此外,在处理数组元素时,它还可以当做C/C++的指针来用,也就是说,可以把迭代器看成通过通用接口(函数等的使用方法)对容器进行迭代处理的指针。

不过,即便接口相同,其实现和行为也会因不同的容器而有所不同。

为使用迭代器,容器提供了一些同名的成员函数:

成员函数 功能
begin() 返回指向容器开头的迭代器
end() 返回指向容器末尾的迭代器,这里的末尾指最后一个元素的下一个位置
#include <iostream>
#include <vector>

using namespace std;

void print(vector< int > v)
{
    vector < int >::iterator it;
    for (it=v.begin();it!=v.end();it++)
        cout<<*it;
    cout<<endl;
}

int main()
{
    int N=4;
    vector < int >v;

    for (int i = 0; i < N; i++) {
        int x;
        cin>>x;
        v.push_back(x);
    }

    print(v);

    vector < int >::iterator it = v.begin();
    *it = 3;
    it++;
    (*it)++;

    print(v);

    return 0;
}
输入:
2 0 1 4
输出:
2014
3114
posted @ 2019-05-04 09:20  AlexKing007  阅读(107)  评论(0编辑  收藏  举报