Skip to content

tkoz0/tkoz-template-library

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TKoz Template Library

This is a personal C++ library for various ideas, including useful data structures, reimplementations of things in other libraries, template metaprogramming, and more. For now, it is something for learning advanced C++ features and possibly something that can be useful in other personal projects.

The header files can be copied into other projects for use. Currently, backward compatibility is not guaranteed as it is in well established libraries. Everything is written only to compile with GCC using C++23.

Ideas

  • 2d arrays (square/rectangular/triangular)
  • hash/tree set/map with designated empty value
  • hash tables with open address / chaining
  • balanced trees (red black, avl)
  • b/b+ trees
  • array set/map (to have the option for being slow)
  • disjoint sets
  • graph (adjacency list/matrix/set)
  • trie (prefix tree)
  • interned string (and possibly other types)
  • generic interned type
  • segment tree
  • fenwick tree (binary indexed tree)
  • bloom filter
  • circular list
  • thread safe data structures
  • sorting algorithm library (including parallel algorithms)
  • n-ary heaps
  • quad/oct trees
  • priority queue (with random access to any element)
  • data structures that remember insertion order
  • custom memory allocators
  • file system level RAID
  • tools for multithreading
  • filesystem library
  • compressed archive library
  • file formats like csv, tsv, json, yml
  • output formatting stuff
  • arbitrary precision arithmetic
  • math functionality
  • larger fixed size integers (signed and unsigned)
  • larger fixed size floats (ieee and use multiple of an ieee type)
  • statistics
  • linear algebra
  • linear optimization
  • nonlinear optimization

About

C++ but with some more features that could be nice

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published