반복자
반복자란 컨테이너에 저장된 요소를 순회하고 접근하는 스마트 포인터이다. ( 스마트 포인터란 언제 할당되고 해제되는지를 아는 똑똑한 포인터라는 뜻이다. )
반복자는 조작 방법에 따라 5가지 종류로 나뉠 수 있다.
1. 입력 반복자(input iterator) : 반복자가 가리키는 위치의 데이터를 읽기만 가능한 반복자로 다음 위치로 이동할 수 있다.
2. 출력 반복자(output iterator) : 반복자가 가리키는 위치의 데이터를 쓰기만 가능한 반복자로 다음 위치로 이동할 수 있다.
3. 순방향 반복자(forward iterator) : 입력 반복자와 출력 반복자의 기능과 더불어 가리키는 위치의 데이터를 여러번 읽거나 쓸 수 있고 현재의 위치를 저장하여 동일한 위치에서 다시 순회를 시작할 수 있다.
4. 양방향 반복자(bidirectional iterator) : 순방향 반복자와 반대로 갈 수도 있다.
5. 임의 접근 반복자(random access iterator) : 양방향 반복자의 기능과 임의의 위치로 상수 시간에 이동할 수 있도록하는 산술연산(+,-)이 가능하다.
컨테이너에는 크게 연속 메모리 기반(Vector,Deque,String)과 노드기반(List,map,set)으로 나뉘는데
연속 메모리 기반 컨테이너는 배열형식이기 때문에 산술연산이 가능한 임의 접근 반복자를 사용하고, 노드 기반 컨테이너는 양방향 반복자를 사용한다.
'예전 > STL' 카테고리의 다른 글
[STL] 연관 컨테이너 ( set,multiset,map,multimap ) (0) | 2012.08.02 |
---|---|
[STL] 연관 컨테이너 ( set,multiset,map,multimap ) (0) | 2012.05.03 |
[STL] 컨테이너의 분류 및 정리 ( Vector, List, String, Deque ) (0) | 2012.05.01 |
[STL] 컨테이너 (0) | 2012.05.01 |
[STL] 컨테이너의 정의 (0) | 2012.04.29 |