본문 바로가기

프로그래밍/C++

advance()함수

void std::advance(_InIt & _Where, _Diff _Off)
iterator를 원하는 위치로 옮길 수 있는 함수이다. 컨테이너의 iterator를 i번째 위치로 옮기고 싶을 때 사용할 수 있다.
첫번째 인자로는 iterator가 들어가고 두번째 인자로는 오프셋이 들어간다.
결과로는 현재 iterator를 오프셋만큼 뒤로 이동시킨다.
 vector<int> a;
 vector<int>::iterator it;
 a.push_back(13);
 a.push_back(2);
 a.push_back(3);
 it = a.begin();
 int n;
 n = 0;
 advance(it, n);
 cout << *it << endl; 

이러한 코드를 작성하게 되면 13이라는 결과가 출력된다. 즉, iterator가 전혀 이동하지 않았다.
만약 n에 2를 넣어준다면 iterator가 2만큼 이동하여 3이 들어가는 위치로 이동하게 될 것이다.
벡터에서는 이러한 advance()함수를 사용할 일이 별로 없을지 몰라도 list같은 컨테이너를 사용할 때에는 활용도가 아주 높을 것 같다.

'프로그래밍 > C++' 카테고리의 다른 글

cout에서 소수점 둘째자리 표현하기  (0) 2010.01.04