函数原型:
template <class InputIterator, class Distance> void advance (InputIterator& i, Distance n);
第一个参数为迭代器的引用,第二个参数是偏移位置,n = 0 不移动,n > 0 迭代器+n, n <0 迭代器-n。
作用:加减迭代器,即使是map这种非随机访问的容器也能使用。
#include "stdafx.h" #include <iostream> #include <map> #include <algorithm> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { map<int, int> m; map<int, int>::iterator it; int i = 0; for (int i = 0; i != 50; ++i) { m.insert(make_pair(i, i)); } it = m.begin(); advance(it, 5); cout << it->second; return 0; }
输出结果:
5