函数原型:
template <class InputIterator, class Distance> void advance (InputIterator& i, Distance n);
第一个参数为迭代器的引用,第二个参数是偏移位置,n = 0 不移动,n > 0 迭代器+n, n <0 迭代器-n。
作用:加减迭代器,即使是map这种非随机访问的容器也能使用。同样也适用于list/vector/deque/stack等容器中。使用起来比较方便
- #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;
- }