Skip to content

pets-tech/mystd

Repository files navigation

mystd is a stl-like library.

GitHub Pages codecov mystd CI

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.

Features

  • 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
  • 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
  • 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
  • graphs
    • Adjacency list/matrix
    • DFS, BFS
    • DSU
    • Skip List

About

mystd: A from-scratch implementation of fundamental data structures and algorithms in C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published