STL - 11 (연결리스트 - 3)

Youngmin Choi·2021년 6월 19일
0

STL

목록 보기
11/34
post-thumbnail

1. list 사용방법

#include < list >

선언 :
list<자료형> 변수이름

동적할당 :
list<자료형>* 변수이름 = new list<자료형>();

2. 반복자 (Iterator)

  • list에 저장된 데이터에 접근하려면 반복자를 사용해야 함으로 list를 설명하기 전에 반복자에 대해서 간단하게 이야기한다. 반복자는 일반화된 개념이라 봐도 된다. 포인터와 비슷하게 ++와 --로 이동하고 대입과 비교도 가능하다.
  • begin()
    첫 번째 요소를 가리키는 반복자를 리턴한다.
    ex) list::iterator iterFirst = list1.begin();
  • end()
    마지막 요소를 가리킨다. 주의할 점은 begin()과 달리 end()는 마지막 요소 바로 다음을 가리킨다. 즉 사용할 수 없는 영역을 가리키므로 end() 위치의 반복자는 사용하지 못한다.
    ex) list::iterator iterEnd = list1.end();

  • for문에서 list에 저장된 모든 요소에 접근하려면 begin()end() 반복자를 사용하면 된다.
    ex)

    for(list::iterator iterPos = list1.begin(); iterPos != list1.end(); ++iterPos)
    {
    cout << "list1의 요소 : " << *iterPos << endl;
    }

  • rbegin()
    begin()와 비슷한데 다른 점은 역 방향으로 첫 번째 요소를 가리킨다는 것이다. 그리고 사용하는 반복자도 다르다.
    ex) list:reverse_iterator IterPos = list->rbegin();

  • rend()
    end()와 비슷한데 다른 점은 역 방향으로 마지막 요소 다음으로 가리킨다는 것이다.
    ex) list::reverse_iterator IterPos = list1.rend();

  • 반복문에서 rbegin()rend()를 사용하여 list1의 각 데이터에 접근한다면 다음처럼 사용하면 된다.
    ex)
    for(list::reverse_iterator IterPos = list1.rbegin(); IterPos != list1.rend(); ++IterPos)
    {
    cout << "역 방향 list1의 요소 : " << *IterPos << endl;
    }


profile
Always, Continually, In all circumstance

0개의 댓글