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
반응형
'Language > C++' 카테고리의 다른 글
[C++] 비트 연산 (0) | 2024.02.01 |
---|---|
[C++] 문자열 split 함수 구현하기 (0) | 2023.03.14 |
[C++] 원하는 자리수까지 출력하기 (반올림, 올림, 내림) (0) | 2022.05.27 |
[C++] PS할 때 전역변수를 써야 하는 경우 (0) | 2022.04.28 |
[C++] STL - 정렬 알고리즘 함수 (sort, stable_sort, binary_search) (0) | 2021.11.07 |