C++에는 사실 다양한 종류의 반복자를 가지고 있다. 그리고 반복자마다 가능한 동작, 불가능한 동작이 따로 있다. 그리고 STL의 containter마다 지원되는 iterator도 달라서 숙지할 필요가 있다. 우선 카테고리는 아래와 같다. 더 큰 범주를 나타내는 iterator는 순서대로 Random Access iterator > Bidirectional iterator > Forward iterator > Input/Ouput iterator이다. 우선 모든 iterator들은 복사, 대입 연산이 가능하며 디폴트 복사생성자가 있으며 ++ 연산이 가능하다(Note: --는 Bidirection부터 된다). Input Iterator는 복사, 대입, 비교(==, !=), 역참조(*, ->를 사용하되 rv..