stl 반복자. : 이터레이터

보물창고·2023년 1월 19일
0

c++ basic 코드누리

목록 보기
46/50

반복자

  • 개념
    : 포인터와 유사하게 동작하는 객체
    :: 컨테이너의 모든 요소를 순차적으로 접근할 수 있는 포인터.

  • 장점
    : 컨테이너의 내부 구조에 상관없이 동일한 방법으로 요소에 접근할 수 있음.

    • 연속적인 메모리 구조를 가지고 있는 vector
    • 비연속적인 메모리 구조를 가지고 있는 list
      에 동일한 방법으로 접근이 가능하다는 특징이 장점!
  • 반복자 데이터 타입
    : 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()

: 컨테이너의 마지막 다음을 가리킴.
-> 왜냐하면 컨테이너의 끝에 도달했는지를 구별하기 위함 .
--> 따라서 end()로 얻어진 반복자를 이용해 요소에 접근하면 안됨.

반복자를 꺼내는 방법.

1) 멤버 함수

  • v.begin();
  • v.end();

2) 일반 함수

  • begin(v);
  • end(v);

problem

: 벡터를 begin과 end 함수를 사용해서 반복문 돌리기 .
-> end() 아닐때까지만 진행해야 함.

profile
🔥🔥🔥

0개의 댓글