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