3.2.3 list 사용
STL의 list 사용 방법은 vector를 사용하는 방법과 매우 유사합니다. 차이가 있는 부분은 vector에서는 자료를 보관하는 저장소가 연속적인 메모리에 있어서 인덱스 연산을 제공하지만 list에는 제공하지 않는다는 점 정도입니다.
물론 vector에서 저장소의 크기를 확인할 때 사용하는 capacity 메서드나 저장소의 크기를 설정하는 reserve 메서드도 없습니다.
하지만 이 외에 대부분의 사용방법은 같습니다.
3.1.2 와 3.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;
...이하 생략...
여러분께서는 다시 한 번 작성해 보시기 바랍니다.
개발자는 관리해야 할 자료와 기능에 따라 어떠한 자료구조를 선택할 것인지를 고민해서 결정해야 합니다. 이를 위해 자료구조를 학습하는 것입니다. 기본적인 자료구조들은 이미 라이브러리로 만들어져 있기 때문에 실제 개발자가 만들어야 할 때는 많지 않습니다. 물론 그래프나 특수한 용도의 자료구조는 만들어야겠죠.
'언어 자료구조 알고리즘 > [C++]디딤돌 자료구조와 알고리즘' 카테고리의 다른 글
5. list 만들기 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
---|---|
4. vector 만들기 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
3.5 큐를 이용한 스케쥴러 시뮬레이션 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
3.4 큐(Queue) [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
3.3 스택(Stack) [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
3.2.2 이중 연결리스트 만들기 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
3.2.1 단순 연결리스트 만들기 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
3.2 연결리스트와 list [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
3.1.5 vector를 인덱스 연산으로 사용 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
3.1.4 vector에 특정 키 순으로 보관 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |