3.2.3 list 사용

STL의 list 사용 방법은 vector를 사용하는 방법과 매우 유사합니다. 차이가 있는 부분은 vector에서는 자료를 보관하는 저장소가 연속적인 메모리에 있어서 인덱스 연산을 제공하지만 list에는 제공하지 않는다는 점 정도입니다.

물론 vector에서 저장소의 크기를 확인할 때 사용하는 capacity 메서드나 저장소의 크기를 설정하는 reserve 메서드도 없습니다.

하지만 이 외에 대부분의 사용방법은 같습니다.

3.1.23.1.4에서 vector를 사용하는 코드에서 포함할 파일명과 타입 재지정하기 위한 typedef문에 vector만 list로 변경하면 아무런 컴파일 오류도 없으며 실행도 똑같이 동작합니다.

//#include <vector>
#include <list>
#include <algorithm>

//using std::vector;
using std::list;
using std::find;
using std::find_if;

//typedef vector<Genre *> Genres;
typedef list<Genre *> Genres;
typedef Genres::iterator GIter;
typedef Genres::const_iterator GCIter;
...이하 생략...

여러분께서는 다시 한 번 작성해 보시기 바랍니다.

개발자는 관리해야 할 자료와 기능에 따라 어떠한 자료구조를 선택할 것인지를 고민해서 결정해야 합니다. 이를 위해 자료구조를 학습하는 것입니다. 기본적인 자료구조들은 이미 라이브러리로 만들어져 있기 때문에 실제 개발자가 만들어야 할 때는 많지 않습니다. 물론 그래프나 특수한 용도의 자료구조는 만들어야겠죠.