C++/Algorytmy w STL/advance()

Z Wikibooks, biblioteki wolnych podręczników.

Spis treści

[edytuj] advance()

[edytuj] Działanie

advance(i, n) przesuwa zadany iterator i o n pozycji. Jeżeli n > 0 to działanie funkcji sprowadza się do wykonania ++i n-razy, jeżeli n < 0 to działanie sprowadza się do wykonania --i n-razy. Dla n równego 0 wywołanie nie ma żadnego efektu.

[edytuj] Prototyp

template <class InputIterator, class Distance>
void advance(InputIterator& i, Distance n);


[edytuj] Przykład

#include <algorithm>
#include <list>
#include <assert.h>
 
using namespace std;
 
int main(){
list<int> L;
L.push_back(0);
L.push_back(1);
 
list<int>::iterator i = L.begin();
advance(i, 2);
assert(i == L.end());
return 0;
}