iterateor
Posted 2012. 8. 13. 22:21컨테이너 내부의 요소를 순회(traversing)하는 방법을 캡슐화한 객체. 현재 가리키는 요소를 반환하는 *연산자->연산자 를 가지고 있으며 그 외의 연산자는 반복자의 종류에 따라 다름.(iterator, reverse_iterator, const_iterator, const_reverse_iterator). 반복자는 클래스 템플릿이며 컨테이너마다 특화되어 있는 자료구조를 선형적으로 다룰수 있게 해준다.
(무효화 : 반복자가 가리키는 원소에 대한 참조가 정산적인 동작을 보장할 수 없게 되는경우)
반복자는 컨테이너의 특정 위치를 가르키고있음. Pointer와 같이 연산자를 사용할 수 있음(연산자 오버로드 되어있음)
operator* : 현재
operator ++ : 다음
operator -- : dlwjs
operator !=, == : 같은지 아닌지
operator = : 반복자를 할당
pointer와 다른것이 없어보이지만 iterater는 복잡한 컨테이너를 순회할수 있는 스마트 포인터임.
반복자는 후위연산보단 전위연산이 성능이 좋음(후위는 반복자의 이전값을 반환하기 때문에 임시로 객체가 생김)
con::iterator : 원소들을 읽기/쓰기 가능
con::const_iterator : 읽기 전용(const)
'C++ > STL' 카테고리의 다른 글
STL 동적 할당 해제 (0) | 2012.08.13 |
---|---|
containers (0) | 2012.08.13 |
algorithm (0) | 2012.08.13 |
STL 이란 ? (0) | 2012.08.13 |
- Filed under : C++/STL