챕터1 - General Rules
- unprotected header는 0점.
- header 파일 안에 함수가 있어도 0점.
- c++ 과제임. 따라서:
*alloc
,*printf
,free
사용이 금지됨- stdlib 안에 있는 것 사용 가능하지만 c++스럽게 코딩해라
- STL 라이브러리를 recode 하는 것이 목표이기 때문에 당연히 container 그 자체를 사용하는 건 안 됨.
using namespace, friend
는 금지됨. 쓰면 -42점.- You must read the examples thoroughly. They can contain requirements that are not obvious in the exercise’s description. If something seems ambiguous, you don’t understand C++ enough.
- 외부 라이브러리 사용 금지. c++11 버전 파생 라이브러리나 Boost 사용 금지.
(주. #include <bits/stdc++.h> 는 클러스터 맥에 깔린 c++ 버전이 12라 지원을 안 함.) - 많은 양의 클래스를 제출해야 할 수도 있음. 그래서 짜증날 수도 있다. 니가 좋아하는 에디터를 쓰는 게 아니라면.
- 시작하기에 앞서 프로젝트를 완벽히 숙지할 것.
- clang++ 로 컴파일 할 것.
- -Wall -Werror -Wextra 사용.
- Each of your includes must be able to be included independently from others. Includes must contains every other includes they are depending on, obviously.
- 정해진 코딩 스타일은 없다. 알아볼 수 없을 정도만 아니면 됨.
- 여기서부터 중요 : program에 의해 평가받는 것 아님. 그렇기 때문에 테스트케이스 선택은 자율적으로 하시길. 다만 충분히 많은 양의 테스트 해보는 것을 권함.
- 파일의 개수는 중요하지 않음.
- 서브젝트는 짧아도 이 과제를 확실히 하는 것이 당신에게 큰 도움이 될 것이다.
- 오딘의 힘으로, 토르의 힘으로! Use your brain!!!
챕터 2 - 목표
이번 프로젝트에서 당신은 c++ standard template library container type들을 구현할 것이다.
각각의 컨테이너들은 적절한 클래스파일로 제출되어야 한다.
namespace는 ft여야 한다. 테스트는 ft:<container>
과 같은 형태로 진행될 것이다.
You need to respect the structure of the reference container. If it’s missing a part of the Coplien form, do not implement it.
c++98 을 쓸 것이며, container의 새로운 feature는 구현되지 않아야 한다.
챕터 3 - 필수 파트
<container>.hpp
파일에 container를 구현해서 제출.main.cpp
도 제출하여 테스트할수 있게 하라.std::allocator
사용 가능. Non-member and overloads are expected.- 내부 데이터 구조(structure)를 합리적으로 설명해야 함. 단순한 배열을 map에 사용하는 건 not ok.
- 컨테이너가 iterator 시스템을 가지고 있다면 그것을 구현해야 함.
- https://www.cplusplus.com/ 을 레퍼런스로 사용하면 됨. 여기에 c++ 98 버전이 담겨 있음.
- standard container에 들어 있는 public function 보다 더 많이 public function을 implement 하지 말 것.
- 나머지는 전부 private이나 protected로 돌려라.
- non-member overload에 한해
friend
사용을 허가한다. 모든friend
사용은 합리적으로 설명할 수 있어야 한다. - 다음의 컨테이너를 구현하라.
- List
- Vector
- Map
- Stack
- Queue
- STL은 사용 금지. 그러나 STD 라이브러리는 사용 가능.
챕터 4 - 보너스
필수 파트를 모두 끝냈다면 다음의 컨테이너도 작성해보자.
- Deque
- Set
- Multiset
- Multimap
# 컨테이너 과제 해석
최근댓글