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

 

posted @ 2013-05-15 16:27  轻典  阅读(215)  评论(0编辑  收藏  举报