subject


과제 목표

STL에 있는 컨테이너 만들기

로드맵


{ 1phase / container 의 필수 요소 감잡기 but 이단계에선 내가 뭘 만드는지 모르는게 당연 } // 권장 학습 기간 2~3일
0. 사전 지식 공부 - SFINAE와 enable_if, allocator, is_integral, iterator traits 등
1. // type traits - enable_if, is_integral 들 구현
2. iterator traits
3. algorithm - equal, lexicographical_compare
4. pair

{ 2phase / 위에서 만든걸 써먹으면서 이해도 높이기 } // 권장 학습 기간 2일
5. random access iterator
6. reverse iterator

{ 3phase / 위에서 만든걸 사용하면서 컨테이너를 직접 구현 } // 권장 학습 기간 3일
7. vector 구현
8. vector 구현 이후 adaptor container 로 stack 구현

{ 4phase / map에 대해 공부하고 tree를 구현할 준비 } // 권장 학습 기간 2일
9. tree node
10. tree iterator

{ 5phase / map 구현 } // 권장 학습 기간 3일
11. map -> set (인터페이스만 구현)
12. red black tree 이나 avl tree 로직을 사용하여 트리 구현 (내부로직 구현)

/* 참고사항
- 대부분 구현해야할 것들은 cppreference.com 이나 cplusplus.com 에서 확인 가능
*/

C++은 제너릭한 프로그래밍을 위해 template을 지원한다. template이란 함수나 클래스를 다양한 자료형으로 사용할 수 있도록 만든 틀이다. 또한 이런 template을 이용한 라이브러리를 Standard Template Library라고 한다.