
- C++ STL(Standard Template Library) 중에서 Container를 C++98 version으로 구현한다.
- STL(Standard Template Library)은 Container(자료구조), Algorithm으로 구성되어있다.
- 98버젼인 이유는 42에서 C로 과제가 시작되고 이후에 OOP를 배우는 과제에 진입할때 이미 C에 친숙한 상태이므로 C++을 OOP 언어로 선택한 것이다
- 구 버젼이라 실제로 출시할 제품으로 만들때 모던 C++을 따로 배워야한다지만 배우는 입장에서 초기 버젼이라 함수가 적고 그럼으로써 구현 사항이 적은것은 질리지 않고 익히며 어떤 원리로 이 언어가 만들어졌는지 이해하기에 괜찮다 싶다.
- Container 즉, 자료구조에 대해 구현해야한다.
- 크게 dynamic array와 tree로 나눌 수 있다.
- dynamic array
- vector
- stack
- tree
- map
- set
그 외에 C++에 한축인 Template에 대해 알아야한다
C++에서의 generic programming을 template이라 한다.
- 단어로의 generic은 복제약, 전형적인 것 이라는 의미가 있다.
- 프로그래밍에서는 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입을 가질 수 있는 기술에 중점 두어 재사용성을 높일 수 있는 방식을 의미한다.
이런식으로 generic programming이 적용된 STL은 어떤 타입에 대해서든 처리하게 만들 수 있어서 더욱 유연하게 프로그래밍 할 수 있게 해준다.
test
--- 밤이 늦어서 이만 줄일 예정이다.
정리 더 해야할 것들
- Generic programming 다른 언어에서의 예시
- Template programming과 generic programming은 완전히 일치하는가
- Template meta programming의 정의와 범위(경계값)
- SFAINAE
- std::enable_if
- std::is_integral
- std::allocator
- Iterator
- std::iterator_traits
- std::reverse_iterator
- std::equal
- std::lexicographical_compare
- std::pair
- std::make_pair
'트레이닝 > 42' 카테고리의 다른 글
[42seoul] Transcendence 웹 프로젝트 (0) | 2023.07.06 |
---|---|
[42seoul] Webserv 후기 (0) | 2023.04.17 |
[Inception] intro (0) | 2022.12.25 |
[STL|Container] 공부해야할 것들 (0) | 2022.12.11 |