[c++] STL 반복자(iterator) 종류
C++ 표준 라이브러리(STL)는 여러 종류의 반복자를 제공하여 데이터 컨테이너에 접근하는 방법을 표준화하고 있습니다. 각각의 반복자는 다양한 컨테이너에서 사용할 수 있도록 설계되었으며, 서로 다른 기능과 동작을 제공합니다.
Input Iterator (입력 반복자)
- 설명: 단방향 반복자로, 순차 읽기만 가능합니다. 데이터를 한 번만 읽을 수 있으며,
==
,!=
,++
,*
,->
등의 연산자를 지원합니다. - 사용 예시:
std::find()
,std::copy()
Output Iterator (출력 반복자)
- 설명: Input Iterator와 마찬가지로 단방향 반복자이지만, 순차적으로 쓰기만 가능합니다.
++
,*
연산자를 지원합니다. - 사용 예시:
std::copy()
Forward Iterator (순방향 반복자)
- 설명: 단방향 반복자의 확장으로, 순차적으로 읽고 쓰기가 가능합니다.
++
,*
,==
,!=
등의 연산자를 지원합니다. - 사용 예시:
std::list
,std::forward_list
Bidirectional Iterator (양방향 반복자)
- 설명: Forward Iterator의 확장으로, 역방향으로의 이동이 가능합니다.
--
연산자를 지원합니다. - 사용 예시:
std::list
,std::set
,std::map
Random Access Iterator (임의접근 반복자)
- 설명: 가장 강력한 반복자로, 임의의 위치로 이동하고, 임의의 위치에 쓰기가 가능합니다.
+, -, +=, -=, [], <, <=, >, >=
등의 연산자를 지원합니다. - 사용 예시:
std::vector
,std::deque
,std::array
이러한 다양한 종류의 반복자는 다양한 컨테이너와 알고리즘에서 활용될 수 있어서, C++ 프로그래밍에서 STL을 사용하는 경우 유용하게 활용할 수 있습니다.
참고문헌: cplusplus