『C++標準ライブラリ』第7章Iterator Adapters

2486 ワード

C++標準ライブラリは反復器に3つの補助関数を提供した:advance(),distance(),iter_swap()は、前の2つがすべての反復器に本来Random Access反復器にしかない能力を提供します.複数の要素を前進(または後退)し、反復器間の距離を処理します.3番目の補助関数では、2つの反復器の値を交換できます.
#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;});

}