Giter Club home page Giter Club logo

ft_containers's Introduction

ft_containers

jaeskim's 42 ft_containers Score

The multiple available containers in C++ all have very different usage. To make sure you understand them, let’s re-implement them!

📝 PDF

🚀 Content

🚩 Mandatory part

  • Implement the following containers and turn in the necessary files .hpp
  • You must also provide a main.cpp which tests everything for your evaluations. (you need to go further than the example!)
  • You must produce one binary with only your containers and one with the same testing with STL containers.
  • Compare outputs and timing (you can be up to 20 times slower).
  • member functions, Non-member and overloads are expected.
  • respect the naming, take care to details.
  • You must use std::allocator.
  • You must justify your inner data structure for each container (using a simple array for a map is not ok).
  • If the container has an iterator system, you must implement it.
  • iterators_traits, reverse_iterator, enable_if, is_integral, equal/lexicographical compare, std::pair, std::make_pair, must be reimplemented.
  • You can use https://www.cplusplus.com/ and https://cppreference.com/ as references.
  • You cannot implement more public functions than the ones offered in the standard containers. Everything else must be private or protected. Each public function/- variable must be justified.
  • For non-member overloads, the keyword friend is allowed. Each use of friend must be justified and will be checked during evaluation. You must turn in the following containers and their associated functions:
  • Vector
  • Map
  • Stack Your stack will use your vector class as default underlaying container, it must still be compatible with others containers like the STL one. STL containers are forbidden. You are allowed to use the STD library.

🚩 Bonus part

If you finished the mandatory part, you can try and turn in the bonuses.

As a bonus one last container:

  • Set - But this time a Black - Red tree is mandatory.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.