mystd is a stl-like library.
Important
In fact, this is a demo, not realy production code. Real containers need weeks of dev and testing, not hours/days. Use at your own risk. I just implemented a lot of basic things quickly.
- arrays
- static (std::array) -> my::array
- dynamic (std::vector) -> my::vector
- vector_buf
- singly/doubly linked list
- singly linked (std::forwdard_list)
- index and array -> my::arraybased::forward_list
- pointer and heap memory -> my::heapbased::forward_list
- doubly linked (std::list)
- index and array -> my::arraybased::list
- pointer and heap memory -> my::heapbased::list
- singly linked (std::forwdard_list)
- stack (adapter for deque, list, vector)
- queue (adapter for deque, list)
- deque
- on C-array (cyclic buffer)
- list of fixed blocks -> std::deque
- hash table
- hash table on separate chaining -> my::hashtable
- my::unordered_map (todo: should be tested better)
- my::unordered_set (todo: should be tested better)
- my::unordered_multimap (todo: should be tested better)
- my::unordered_multiset (todo: should be tested better)
- hash table on open addressing
- hash table on separate chaining -> my::hashtable
- trees
- binary tree
- binary search tree (BST)
- add iterator
- ballanced tree (std::map)
- AVL
- red black -> std::map, std::set
- treep
- trie
- segment tree
- heaps
- binary heap (max/min)
- priority queue
- Dijkstra’s algorithm
- binary heap (max/min)
- graphs
- Adjacency list/matrix
- DFS, BFS
- DSU
- Skip List