본문 바로가기

Language/C++

[C++] advance 함수

728x90
반응형

std::advance(_InIt& _Where, _Diff _Off) 함수는 off만큼 반복자를 이동시킨다.

vector<int> v = { 1, 2, 3, 4, 5 };
auto it = v.begin();
advance(it, 1);
cout << *it << endl;  // 2

auto it = v.begin();
advance(it, 3);
cout << *it << endl;  // 4

 

배열의 경우는 [ ] 로 임의 접근 할 수 있지만, list와 map 같은 컨테이너의 경우 임의 접근이 불가능하므로

advance 함수는 모든 컨테이너에 대해 배열의 임의 접근과 같은 효과를 낼 수 있도록 한다.

list<int> l;
idx = 2;

// l[idx];   // 불가능

auto it = l.begin();
advance(it, idx);  // 가능

 

728x90
반응형