개념
: 포인터와 유사하게 동작하는 객체
:: 컨테이너의 모든 요소를 순차적으로 접근할 수 있는 포인터.
장점
: 컨테이너의 내부 구조에 상관없이 동일한 방법으로 요소에 접근할 수 있음.
반복자 데이터 타입
: auto를 사용하는 것이 편함.
:: vector::iterator p1= v.begin();
::: list::iterator p2 = l.begin();
예시 코드
vector<int>v{1,2,3};
list<int> l {1,2,3};
auto iter = v.begin();
auto iter2 = l.begin();
: 컨테이너의 마지막 다음을 가리킴.
-> 왜냐하면 컨테이너의 끝에 도달했는지를 구별하기 위함 .
--> 따라서 end()로 얻어진 반복자를 이용해 요소에 접근하면 안됨.
1) 멤버 함수
2) 일반 함수
: 벡터를 begin과 end 함수를 사용해서 반복문 돌리기 .
-> end() 아닐때까지만 진행해야 함.