TODO [/] - In Progress [X] - Finished [~] - Needs to be reviewed [/] Documentation [/] Tests [X] Remove PUBLIC and PRIVATE [X] Extra Collections [X] Add MultiSet [X] Add MultiMap [X] Add IntervalHeap [X] Add SortedList [X] Add BidiMap [/] Add functions [X] update {hashmap, treemap, multimap} [X] set {hashmap, treemap, multimap} [X] to_string {all} [X] iter_advance {all} (iterators) [X] iter_rewind {all} (iterators) [X] iter_go_to {all} (iterators) [ ] from_array {all} [ ] to_array {all} [X] equals {all} [X] copy_of {all} [X] resize {array based collections} [ ] Serialization [ ] save {all} [ ] load {all} [ ] serialize {all} [ ] deserialize {all} [ ] Callback utility [ ] Custom allocators [ ] Zip Iterators [ ] Statically Allocated Collections [ ] BidiMap [ ] Deque [ ] HashMap [ ] HashSet [ ] Heap [ ] IntervalHeap [ ] LinkedList [ ] List [ ] MultiMap [ ] MultiSet [~] Queue [ ] SortedList [~] Stack [ ] TreeMap [ ] TreeSet [ ] Dev Collections [ ] BidiMap [~] Deque [ ] HashMap [ ] HashSet [ ] Heap [ ] IntervalHeap [ ] LinkedList [ ] List [ ] MultiMap [ ] MultiSet [ ] Queue [ ] SortedList [ ] Stack [ ] TreeMap [ ] TreeSet [X] Utility [X] assert.h [X] foreach.h [X] log.h [X] test.h [X] timer.h [ ] Optimizations [ ] Use binary search to find optimum hashtable prime size inside impl_calculate_size [ ] Optimize certain hashtable loops that use iterators but can simply use a normal loop