『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;});
}