《C++标准程序库》 第7章 Iterator Adapters

C++标准库为迭代器提供了三个辅助函数:advance(), distance(), iter_swap() ,前两者提供给所有迭代器一些原本只有 Random Access 迭代器才有的能力:前进(或后退)多个元素,及处理迭代器之间的距离。第三个辅助函数允许你交换两个迭代器的值。

#include <iostream>

#include <vector>

#include <algorithm>



int main()

{

    std::vector<int> vect = {1,2,3,4};

    std::vector<int>::iterator it = vect.begin();

    for(int i = 0; i < vect.size(); ++i)

    {   

        std::cout<<it[i]<<std::endl;

    }   

    std::cout<<"---------------------"<<std::endl;

    std::advance(it,2);

    std::cout<<*it<<std::endl;

    std::advance(it,-1);

    std::cout<<*it<<std::endl;

    std::cout<<"---------------------"<<std::endl;

    std::cout<<std::distance(it,vect.begin())<<std::endl;

    std::cout<<"---------------------"<<std::endl;

    std::iter_swap(vect.begin(),vect.rbegin());

    for_each(vect.begin(),vect.end(),[&](int i){std::cout<<i<<std::endl;});

}

 

你可能感兴趣的:(iterator)