C++

iterator(반복자)

monstro 2024. 4. 29. 01:09
728x90
반응형

이번 포스팅에서는 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가 허용되는 자료구조에서 반복적인 작업을 효율적으로 수행할 수 있게 됩니다.

728x90
반응형

'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