void std::advanceiterator를 원하는 위치로 옮길 수 있는 함수이다. 컨테이너의 iterator를 i번째 위치로 옮기고 싶을 때 사용할 수 있다.(_InIt & _Where, _Diff _Off)
첫번째 인자로는 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 |
---|