Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/solareenlo/42ft_containers
[WIP :)] Reimplementing STL (C++98)
https://github.com/solareenlo/42ft_containers
42 42born2code 42cursus cpp98 stl stl-containers
Last synced: about 1 month ago
JSON representation
[WIP :)] Reimplementing STL (C++98)
- Host: GitHub
- URL: https://github.com/solareenlo/42ft_containers
- Owner: solareenlo
- License: other
- Created: 2021-06-16T02:42:36.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-12-21T11:02:43.000Z (about 3 years ago)
- Last Synced: 2024-10-19T20:07:42.770Z (3 months ago)
- Topics: 42, 42born2code, 42cursus, cpp98, stl, stl-containers
- Language: C++
- Homepage:
- Size: 860 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 【WIP :)】42ft_containers
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/f2867fa20ec54f7e9df02d36de0642e8)](https://www.codacy.com/gh/solareenlo/42ft_containers/dashboard?utm_source=github.com&utm_medium=referral&utm_content=solareenlo/42ft_containers&utm_campaign=Badge_Grade)
[![CodeFactor](https://www.codefactor.io/repository/github/solareenlo/42ft_containers/badge)](https://www.codefactor.io/repository/github/solareenlo/42ft_containers)
[![Coverage Status](https://coveralls.io/repos/github/solareenlo/42ft_containers/badge.svg?branch=main)](https://coveralls.io/github/solareenlo/42ft_containers?branch=main)
[![codecov](https://codecov.io/gh/solareenlo/42ft_containers/branch/main/graph/badge.svg?token=1FO5VN1PWG)](https://codecov.io/gh/solareenlo/42ft_containers)
[![Cpplint](https://github.com/solareenlo/42ft_containers/actions/workflows/cpplint.yml/badge.svg)](https://github.com/solareenlo/42ft_containers/actions/workflows/cpplint.yml)
[![Sanitizer](https://github.com/solareenlo/42ft_containers/actions/workflows/sanitizer.yml/badge.svg)](https://github.com/solareenlo/42ft_containers/actions/workflows/sanitizer.yml)
[![Valgrind](https://github.com/solareenlo/42ft_containers/actions/workflows/valgrind.yml/badge.svg)](https://github.com/solareenlo/42ft_containers/actions/workflows/valgrind.yml)
[![Make test Linux](https://github.com/solareenlo/42ft_containers/actions/workflows/make_test_linux.yml/badge.svg)](https://github.com/solareenlo/42ft_containers/actions/workflows/make_test_linux.yml)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsolareenlo%2F42ft_containers.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fsolareenlo%2F42ft_containers?ref=badge_shield)## References
### STL/Containers
- [cppreference.com/Containers library](https://en.cppreference.com/w/cpp/container)
- [c++.com/reference/stl/](https://www.cplusplus.com/reference/stl/)### deque
- [stl_deque.hpp libstdc++](https://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00641_source.html)
- [deque.tcc libstdc++](https://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00389_source.html)
- [What really is a deque in STL?](https://stackoverflow.com/questions/6292332/what-really-is-a-deque-in-stl)
- [std::deque cppreference](https://en.cppreference.com/w/cpp/container/deque)
- [std::deque cplusplus](https://www.cplusplus.com/reference/deque/deque/)### Red-Black Tree
- [Red-Black Tree | Set 1 (Introduction)](https://www.geeksforgeeks.org/red-black-tree-set-1-introduction-2/)
- [Red Black Trees (with implementation in C++, Java, and Python)](https://algorithmtutor.com/Data-Structures/Tree/Red-Black-Trees/)
- [9. Red-Black Trees Open Data Structures (in C++)](https://opendatastructures.org/ods-cpp/9_Red_Black_Trees.html)
- [Red-Black Tree - Programiz](https://www.programiz.com/dsa/red-black-tree)
- [Left-leaning Red-Black Trees](https://www.cs.princeton.edu/~rs/talks/LLRB/LLRB.pdf)
- [Why Use a Red-Black Tree Over a Regular Binary Search Tree?](https://medium.com/@ben.tom.vincent/why-use-a-red-black-tree-over-a-regular-binary-search-tree-a63857916907)### Type traits
- [A quick primer on type traits in modern C++](https://www.internalpointers.com/post/quick-primer-type-traits-modern-cpp)### namespace
- [namespaceの賢い使い方](https://qiita.com/_EnumHack/items/430da105a541f9ecd774)### Iterators
- [STL Iterators](https://www.cs.helsinki.fi/u/tpkarkka/alglib/k06/lectures/iterators.html)
- [c++.com/reference/iterator/](https://www.cplusplus.com/reference/iterator/)
- [c++.com/reference/reverse_iterator](http://www.cplusplus.com/reference/iterator/reverse_iterator/)
- [The Standard Librarian : Defining Iterators and Const Iterators](https://www.drdobbs.com/the-standard-librarian-defining-iterato/184401331)
- [Pitfalls and decision points in implementing const_iterator](https://quuxplusone.github.io/blog/2018/12/01/const-iterator-antipatterns/)### allocator
- [std::allocator cplusplus](https://www.cplusplus.com/reference/memory/allocator/)### SFINAE
- [任意の式によるSFINAE](https://cpprefjp.github.io/lang/cpp11/sfinae_expressions.html)
- [cppreference.com/SFINAE](https://en.cppreference.com/w/cpp/language/sfinae)### Typedef
- [The Typedef Keyword in C and C++](https://www.cprogramming.com/tutorial/typedef.html)
- The typedef keyword allows the programmer to create new names for types such as int or, more commonly in C++, templated types--it literally stands for "type definition". Typedefs can be used both to provide more clarity to your code and to make it easier to make changes to the underlying data types that you use.### Typedef & Typename
- [C++ - meaning of a statement combining typedef and typename](https://stackoverflow.com/questions/18385418/c-meaning-of-a-statement-combining-typedef-and-typename)### Template
- [An Introduction to Template Metaprogramming](http://cppedinburgh.uk/slides/201603-tmp.pdf)
- [Constraining templates in C++](https://pankajraghav.com/2020/03/22/Templates.html)
- [C++ Template Classes and Friend Function Details](https://web.mst.edu/~nmjxv3/articles/templates.html)
- [C++ Nested class in class template declaration](https://stackoverflow.com/questions/30287402/c-nested-class-in-class-template-declaration)### value_type
- [What is the use of value_type in STL containers?](https://stackoverflow.com/questions/44571362/what-is-the-use-of-value-type-in-stl-containers/44571482#44571482)### BST
- [Binary Search Trees (BST) with code in C++, Python, and Java](https://algorithmtutor.com/Data-Structures/Tree/Binary-Search-Trees/)### Vector
- [std::vector cplusplus.com](https://www.cplusplus.com/reference/vector/vector/?kw=vector)
- [std::vector cppreference.com](https://en.cppreference.com/w/cpp/container/vector)
- [How is C++ STL vector implemented internally](https://codefreakr.com/how-is-c-stl-implemented-internally/)
- [facebook/folly/folly/docs/FBVector.md](https://github.com/facebook/folly/blob/master/folly/docs/FBVector.md)### List
- [14.4 The STL list Class Template](https://cs.calvin.edu/activities/books/c++/intro/3e/WebItems/Ch14-Web/STL-List-14.4.pdf)
- [How is C++ STL list implemented internally](https://codefreakr.com/how-is-c-stl-list-implemented-internally/)
- [C++ linked list iterator implementation](https://codereview.stackexchange.com/questions/216444/c-linked-list-iterator-implementation)
#### Merge sort
- [Merge sort algorithm implementation using C++](https://github.com/ElHuaco/ft_containers)
- [Mergesort For Linked Lists](https://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html)
- [GeeksforGeeks/Merge Sort for Doubly Linked List](https://www.geeksforgeeks.org/merge-sort-for-doubly-linked-list/)
- [Sort List — Merge Sort](https://afteracademy.com/blog/sort-list-merge-sort)#### max_size()
- [How is max size calculated in the function max_size() in std::list?](https://stackoverflow.com/questions/7949486/how-is-max-size-calculated-in-the-function-max-size-in-stdlist/7949501#7949501)### Quick sort
- [GeeksforGeeks/QuickSort](https://www.geeksforgeeks.org/quick-sort/)
- [QuickSort on Doubly Linked List](https://www.geeksforgeeks.org/quicksort-for-linked-list/)### explicit
- [What does the explicit keyword mean?](https://stackoverflow.com/questions/121162/what-does-the-explicit-keyword-mean)### Tips
- [How does a sentinel node offer benefits over NULL?](https://stackoverflow.com/questions/5384358/how-does-a-sentinel-node-offer-benefits-over-null)
- [Wrong constructor called in custom vector class](https://stackoverflow.com/questions/24346869/wrong-constructor-called-in-custom-vector-class)
- [`value_t *&`](https://stackoverflow.com/questions/56079738/why-i-get-an-expression-is-not-assignable-error/56079782#56079782)
- [C++ Data Structures and Algorithms Cheat Sheet](https://github.com/gibsjose/cpp-cheat-sheet/blob/master/Data%20Structures%20and%20Algorithms.md)### Unit test
- [catchorg/Catch2](https://github.com/catchorg/Catch2)- A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)
- [clear-code/cutter](https://github.com/clear-code/cutter)
- An easy to write and debug unit testing framework for C and C++.
- [cpputest/cpputest](https://github.com/cpputest/cpputest)
- CppUTest unit testing and mocking framework for C/C++
- [google/googletest](https://github.com/google/googletest)
- GoogleTest - Google Testing and Mocking Framework
- [mli42/containers_test](https://github.com/mli42/containers_test)
- [llefranc/42_Containator](https://github.com/llefranc/42_Containator)
- [Mazoise/FT_CONTAINERS_TESTER](https://github.com/Mazoise/FT_CONTAINERS_TESTER)
- [cacharle/ft_containers_test](https://github.com/cacharle/ft_containers_test)
### Source Code
#### llvm
- [llvm/llvm-project/libcxx/include/__tree](https://github.com/llvm/llvm-project/blob/main/libcxx/include/__tree)
- [llvm/llvm-project/libcxx/include/list](https://github.com/llvm/llvm-project/blob/main/libcxx/include/list)
- [llvm/llvm-project/libcxx/include/vector](https://github.com/llvm/llvm-project/blob/main/libcxx/include/vector)
- [llvm/llvm-project/libcxx/include/map](https://github.com/llvm/llvm-project/blob/main/libcxx/include/map)
- [llvm/llvm-project/libcxx/include/stack](https://github.com/llvm/llvm-project/blob/main/libcxx/include/stack)
- [llvm/llvm-project/libcxx/include/queue](https://github.com/llvm/llvm-project/blob/main/libcxx/include/queue)
- [llvm/llvm-project/libcxx/include/deque](https://github.com/llvm/llvm-project/blob/main/libcxx/include/deque)
- [llvm/llvm-project/libcxx/include/set](https://github.com/llvm/llvm-project/blob/main/libcxx/include/set)
- [llvm/llvm-project/libcxx/include/__iterator/](https://github.com/llvm/llvm-project/tree/main/libcxx/include/__iterator)
- multiset は set の中にある
- multimap は map の中にある#### gcc
- [gcc-mirror/gcc/libstdc++-v3/include/bits/stl_tree.h](https://github.com/gcc-mirror/gcc/blob/master/libstdc++-v3/include/bits/stl_tree.h)
- [gcc-mirror/gcc/libstdc++-v3/include/bits/stl_list.h](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_list.h)
- [gcc-mirror/gcc/libstdc++-v3/include/bits/stl_vector.h](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_vector.h)
- [gcc-mirror/gcc/libstdc++-v3/include/bits/stl_map.h](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_map.h)
- [gcc-mirror/gcc/libstdc++-v3/include/bits/stl_stack.h](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_stack.h)
- [gcc-mirror/gcc/libstdc++-v3/include/bits/stl_queue.h](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_queue.h)
- [gcc-mirror/gcc/libstdc++-v3/include/bits/deque.tcc](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/deque.tcc)
- [gcc-mirror/gcc/libstdc++-v3/include/bits/stl_deque.h](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_deque.h)
- [gcc-mirror/gcc/libstdc++-v3/include/bits/stl_set.h](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_set.h)
- [gcc-mirror/gcc/libstdc++-v3/include/bits/stl_multiset.h](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_multiset.h)
- [gcc-mirror/gcc/libstdc++-v3/include/bits/stl_multimap.h](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_multimap.h)
- [gcc-mirror/gcc/libstdc++-v3/include/bits/stl_iterator.h](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_iterator.h)
- [gcc-mirror/gcc/libstdc++-v3/include/bits/](https://github.com/gcc-mirror/gcc/tree/master/libstdc%2B%2B-v3/include/bits)#### gnu libstdc++
- [Class index](https://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/classes.html)
- [std::__debug::deque< _Tp, _Allocator > Class Template Reference](https://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a08577.html)
- [std::deque< _Tp, _Alloc > Class Template Reference](https://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a07145.html)#### microsoft
- [microsoft/STL/stl/inc/](https://github.com/microsoft/STL/tree/main/stl/inc)## License
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsolareenlo%2F42ft_containers.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fsolareenlo%2F42ft_containers?ref=badge_large)