2. 반복자 Iterator
2장부터 STL의 주요한 개념들을 하나씩 설명하겠습니다. 이번장에서는 저번에 만들어 봤던 block과 이번에 만들어볼 연결 리스트를 이용해서 반복자의 개념과 필요성에 대해 살펴볼 예정입니다. .....예정만 -_-
반복자란?
STL은 자료구와 알고리즘, 반복자의 집합이라고 말할 수 있다.자료구조와 알고리즘은 그동안 많이 들어왔던 것으로 익숙하기 짝이 없지만......반복자란 뭘까? 내가 생각하기에 반복자는 자료구조와 알고리즘을 연결해주는 일반적인 통로다. 알고리즘은 자료구주에 직접 접근하는것이 아니라 반복자란것을 통해서 자료구조에 접근한다. 대충 아래 그림과 같은 상황이다.
아래 함수를 살펴보면서 반복자가 뭔지 감을 잡아보도록하자.
....작성중임다....
반복자 개층도
모든 반복자는 상위 개념의 반복자가 가지는 특징을 상속받아야함
명백한 반복자
입력 반복자 출력 반복자
전진 반복자
양방향 반복자
임의 접근 반복자
명백한 반복자 Trivial Iterator
모든 반복자가 가져야할 일반적인 특징들, STL에서는 개념적으로만 정의되어 있음
입력 반복자 Input Iterator
단일 패스이며 read-only한 반복자
출력 반복자 Output Iterator
단일 패스이며 write-only한 반복자
* 연산을 사용해 값을 대입하면 값이 써짐
전빈 반복자 Foward Iterator
단일 패스이며 읽기와 쓰기가 모두 가능하지만 단일 패스임
양방향 반복자 Bydirection Iterator
읽기와 쓰기가 모두 가능하고 포인터 산술 연산의 --가 정의되어 있음
임의 접근 반복자 Random Access Iterator
일기와 쓰가가 모두 가능하고 포인터 산술 연산의 p + n과 []연산이 정의되어 있음
** l-value와 r-value란? **
(1)
(
