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 |