이번 포스팅에서는 iterator, 한국말로 반복자라고 불리는 개념에 대해서 알아보겠습니다.
1) iterator란?
iterator는 Wrapper Class의 일종입니다.
이때 Wrapper Class란,
int, float, long과 같은 기본자료타입(primitive type)을 인스턴스로 다루기 위해 사용하는 클래스를 의미합니다.
iterator는 C++외에도 java와 같은 다른 프로그래밍 언어에도 존재합니다.
C++에서 iterator는 일반화된 포인터의 형태를 갖고 있지만, 완전히 동일하지는 않습니다.
그러나 iterator를 통해 값에 접근하기 위해서는 참조 연산자(*)를 사용하는 등의 접근 방법이 필요합니다.
또한 iterator는 클래스이므로, 이와 관련된 메서드들이 다수 존재합니다.
이와 관련하여 윈도우 공식 문서의 링크를 안내해드리겠습니다.
https://learn.microsoft.com/ko-kr/cpp/standard-library/iterator-functions?view=msvc-170#advance
<iterator> 함수
함수에 대해 자세히 알아보기
learn.microsoft.com
2) iterator의 사용
실행결과는 다음과 같습니다.
주의해야 할 것은 iterator의 end 메서드는
자료구조의 마지막 데이터가 들어있는 메모리가 아닌 그 다음에 위치한 메모리를 참조한다는 것입니다.
위 그림에서 파란색 화살표가 바로 end가 참조하고 있는 메모리가 됩니다.
iterator를 사용할 때는 이런 부분에서 주의해야 할 것입니다.
iterator를 사용하여 우리는 iterator가 허용되는 자료구조에서 반복적인 작업을 효율적으로 수행할 수 있게 됩니다.
'C++' 카테고리의 다른 글
스마트 포인터 - shared_ptr (0) | 2024.05.27 |
---|---|
동적할당 (0) | 2024.04.29 |
오른값 참조 (0) | 2024.04.22 |
얕은 복사 VS 깊은 복사 (0) | 2024.04.21 |
C++의 캐스팅 - const_cast (0) | 2024.04.15 |