Modern C++

[C++] Iterator

태현123 2021. 8. 16. 17:45
728x90
반응형
SMALL

오늘 알아볼 것은 Iterator(반복자)다.

 

반복자란?

- 컨테이너의 요소를 가리키는 포인터라고 할 수 있다.

 

간단한 예로 list를 한번 보자.

 

나는 int형 리스트 l을 선언하고, l에 1,2,3을 차례대로 삽입했다. 그리고, iter에 l의 맨 처음 요소를 삽입해주었고, 이 iter은 결국 1이라는 값을 출력할 것이다.

이런 식으로 반복자를 간단하게 생각하면 그냥 컨테이너의 요소를 가리키는 포인터라고 생각할 수 있다. 여기서 iter에 1을 더하면 그 다음 인자인 2로 넘어간다.

 

 

반복자 설명 생성되는 방식 읽기 접근 쓰기 증감 비교
입력 반복자 (Input Iterator) 읽기만 가능, 순방향 이동 istream_iterator =*p ->   ++ == !=
출력 반복자 (Output Iterator) 쓰기만 가능, 순방향 이동 ostream_iterator
inserter
front_insert
back_insert
    *p= ++  
순방향 반복자 (Forward Iterator) 읽기/쓰기 모두 가능, 순방향 이동   =*p -> *p= ++ == !=
양방향 반복자 (Bidirectional Iterator) 읽기/쓰기 모두 가능, 순방향/역방향 이동 list
Set, MultiSet
Map, Multimap
=*p -> *p= ++
--
== !=
임의 접근 반복자 (Random Access Iterator) 읽기/쓰기 모두 가능, 임의접근 일반 포인터,
vector, deque
=*p ->
[]
*p= ++
--
+ -
+= -=
== !=
< >
<= >=

 위의 표는 반복자의 종류이다. 

 

간단하게 여기까지 알아보고 나중에 필요한 부분이 있으면 추가해보도록 할 생각이다.

반응형
LIST

'Modern C++' 카테고리의 다른 글

[C++] R Value 참조와 Move Semantics  (0) 2021.09.11
[C++] Priority Queue - 우선순위 큐  (0) 2021.08.19
[C++] 상속  (0) 2021.08.15
[C++] Container - Map  (0) 2021.07.20
[C++] Container - List  (0) 2021.07.19