{"id":19500300,"url":"https://github.com/aabduvak/ft_containers","last_synced_at":"2026-06-15T19:31:23.912Z","repository":{"id":163218573,"uuid":"528229650","full_name":"aabduvak/ft_containers","owner":"aabduvak","description":"The multiple available containers in C++ all have a very different usage. To make sure you understand them all, let's re-implement them!","archived":false,"fork":false,"pushed_at":"2022-09-15T18:18:56.000Z","size":48,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-25T21:24:44.915Z","etag":null,"topics":["42istanbul","42school","containers","data-structures","stl"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aabduvak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-24T02:01:05.000Z","updated_at":"2022-09-15T18:24:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"b3215ea3-3f80-44c6-b4ed-7083cefccb00","html_url":"https://github.com/aabduvak/ft_containers","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aabduvak/ft_containers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aabduvak%2Fft_containers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aabduvak%2Fft_containers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aabduvak%2Fft_containers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aabduvak%2Fft_containers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aabduvak","download_url":"https://codeload.github.com/aabduvak/ft_containers/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aabduvak%2Fft_containers/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34377872,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["42istanbul","42school","containers","data-structures","stl"],"created_at":"2024-11-10T22:08:07.336Z","updated_at":"2026-06-15T19:31:23.892Z","avatar_url":"https://github.com/aabduvak.png","language":"C++","funding_links":["https://www.buymeacoffee.com/aabduvak"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e 📦 STL Containers \u003c/h1\u003e\n\n\u003cp align=center\u003e\n  \u003cimg alt=\"GitHub last commit\" src=\"https://img.shields.io/github/last-commit/aabduvak/ft_containers?color=f34b7d\"\u003e\n  \u003cimg alt=\"Repository size\" src=\"https://img.shields.io/github/repo-size/aabduvak/ft_containers?color=f34b7d\"\u003e\n  \u003cimg alt=\"GitHub top language\" src=\"https://img.shields.io/github/languages/top/aabduvak/ft_containers?color=f34b7d\"\u003e\n\u003c/p\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003csummary\u003eTable of Contents\u003c/summary\u003e\n\u003col\u003e\n\u003cli\u003e\n\t\u003ca href=\"#-about\"\u003eAbout The Project\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#-contributers\"\u003eContributors\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#-resources\"\u003eResources\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/details\u003e\n\n## 🤔 About\nft_containers is a project of the mandatory part of the cursus.\nIt's only made in C++ and was about recoding some containers from the STL.\n\nIn order to succeed, a good comprehension of how **templates**, **iterators**, **containers** and \n**algorithms** work was necessary. Of course, STL is not allowed. That means \nyou cannot use \\\u003citerator\\\u003e or even \\\u003cutility\\\u003e. \n\nHere are the specificities of the five containers:\n\n- :arrow_right: **Vector:** a dynamic array that allows insertion at the end of the container. Elements can be easily access thanks with the corresponding index, but it's not the most optimal container if a lot of insertion / deletion are needed.\n- :arrow_right: **List:** a circular linked list (with a neutral node linking beginning and end of the list). Better than vector for inserting or deleting elements.\n- :arrow_right: **Stack:** a container adaptator (LIFO, last in first out).\n- :arrow_right: **Queue:** a container adaptator (FIFO, first in first out).\n- :arrow_right: **Map:** a sorted container using an AVL binary tree (auto-equilibrates itself to optimize the time to find a value in the tree), in order to store the datas like in a dictionnary (a key associated to its value).\n\n#### Skills\n\n- Network \u0026 system administration\n- Rigor\n- Object-oriented programming\n\n\n## 💪 Contributers\n\n[Abdulaziz Abduvakhobov](https://github.com/aabduvak)\u003cbr/\u003e\n\u0026emsp;42intra profile : [aabduvak](https://profile.intra.42.fr/users/aabduvak) \u003cbr/\u003e\n\u003cbr/\u003e\n[Arbi Elmas](https://github.com/milesDonQuijote)\n\u003cbr/\u003e\n\u0026emsp;42intra profile : [arelmas](https://profile.intra.42.fr/users/arelmas)\n\u003cbr/\u003e\n\u003cbr/\u003e\n[Ömer Faruk Öz](https://github.com/omer0909)\n\u003cbr/\u003e\n\u0026emsp;42intra profile : [ooz](https://profile.intra.42.fr/users/ooz)\n\n\n## 👨‍💻 Resources\n\n- [Best website for learning about C++ (including C++98)][17]\n- [Difference of keywords 'typename' and 'class' in templates][2]\n- [Lvalus and rvalues][3]\n- [Dependant names in C++][4]\n- [What's explicit keyword][5]\n- [Explicit call to a constructor][15]\n- [Implementing iterators][6]\n- [Writing your own STL style container][7]\n- [Writing operator++ for iterator][8]\n- [Writing operator== for iterator][9]\n- [When use typename keyword][10]\n- [Cours sur les templates][11]\n- [Understanding SFINAE (used in enable_if)][12]\n- [How to use the allocator][13]\n- [Difference between explicit and implicit copy constructor][14]\n\n\n[1]: https://github.com/llefranc/42_ft_containers/blob/main/ft_containers.en.subject.pdf\n[2]: https://stackoverflow.com/questions/2023977/difference-of-keywords-typename-and-class-in-templates\n[3]: https://www.tutorialspoint.com/What-are-Lvalues-and-Rvalues-in-Cplusplus#:~:text=An%20lvalue%20(locator%20value)%20represents,some%20identifiable%20location%20in%20memory.\n[4]: https://stackoverflow.com/questions/1527849/how-do-you-understand-dependent-names-in-c#:~:text=A%20dependent%20name%20is%20essentially,depends%20on%20a%20template%20argument.\u0026text=Names%20that%20depend%20on%20a,at%20the%20point%20of%20definition.\n[5]: https://stackoverflow.com/questions/121162/what-does-the-explicit-keyword-mean\n[6]: https://stackoverflow.com/questions/8054273/how-to-implement-an-stl-style-iterator-and-avoid-common-pitfalls\n[7]: https://stackoverflow.com/questions/7758580/writing-your-own-stl-container/7759622#7759622\n[8]: https://stackoverflow.com/questions/4329677/increment-operator-iterator-implementation\n[9]: https://stackoverflow.com/questions/12806657/writing-an-operator-function-for-an-iterator-in-c\n[10]: https://stackoverflow.com/questions/7923369/when-is-the-typename-keyword-necessary\n[11]: https://cpp.developpez.com/cours/cpp/?page=page_14\n[12]: https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/SFINAE\n[13]: https://stackoverflow.com/questions/59539057/c-does-it-lead-to-double-free-when-destroy-element-in-allocatorstring\n[14]: https://stackoverflow.com/questions/1051379/is-there-a-difference-between-copy-initialization-and-direct-initialization\n[15]: https://stackoverflow.com/questions/12036037/explicit-call-to-a-constructor\n[16]: https://github.com/hherin\n[17]: http://www.cplusplus.com/\n\n\n---\n[![\"Buy Me A Coffee\"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/aabduvak)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faabduvak%2Fft_containers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faabduvak%2Fft_containers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faabduvak%2Fft_containers/lists"}