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;
}


