std::iterator
https://ansohxxn.github.io/stl/chapter16-2/
iterator를 별도로 사용하는 이유?
1) 만약 반복문 도중 무언가를 삭제해야 할 일이 있다면 iterator로 지우고 2칸 뛰고 등의 방식으로 처리해줄 수 있음.
이는 auto로는 불가능함!
2) vector, array와 같이 [index]꼴의 접근이 불가능한 자료구조일 경우 별도로 iterator를 정의해주어야 할 수도 있음.
예) unordered_map의 경우 데이터들을 일정한 순서로 저장하는게 아님. 때문에 iterator가 필요할 수 있음.
참고사항
벡터의 경우 vector.begin()은 첫번째 인자를 가리키는 게 맞지만, vector.end()는 마지막 원소 +1을 가리킨다.
즉 for loop을 다음 형태로 짜야 한다.
for (vector<int>::iterator i = v.begin(); i != v.end(); i++)
std::advance
https://ence2.github.io/2020/11/stdadvance-%EC%98%88%EC%A0%9C/
'lang > c++' 카테고리의 다른 글
std::shared_ptr은 thread-safe한가? (0) | 2023.05.30 |
---|---|
atan, atan2 (0) | 2022.07.05 |
Bitwise operator (C/C++) (0) | 2021.08.20 |
스마트포인터와 RAII (0) | 2021.05.30 |
stl::queue 초기화 (0) | 2021.04.02 |