Personal library for C applications
Find a file
2025-04-19 16:01:09 +02:00
.github/workflows Add github action to ctest lib 2025-04-18 12:50:59 +02:00
include/htd Add priority queue 2025-04-19 16:01:09 +02:00
src/data_structure Add priority queue 2025-04-19 16:01:09 +02:00
tests Add priority queue 2025-04-19 16:01:09 +02:00
.gitignore Add primitives, hash map and dynamic array 2025-04-17 09:53:37 +02:00
cmake_uninstall.cmake.in Add install and uninstall target 2025-04-17 10:01:35 +02:00
CMakeLists.txt Add better hmap compacting 2025-04-19 10:46:46 +02:00
README.md Add priority queue 2025-04-19 16:01:09 +02:00

Personal library for C

Features

Primitives

Use shorter more concise names for common C types.

  • i8: 8-bit signed integer
  • u8: 8-bit unsigned integer
  • i16: 16-bit signed integer
  • u16: 16-bit unsigned integer
  • i32: 32-bit signed integer
  • u32: 32-bit unsigned integer
  • i64: 64-bit signed integer
  • u64: 64-bit unsigned integer
  • f32: 32-bit floating point
  • f64: 64-bit floating point
  • usize: Unsigned integer of the same size as a pointer
  • isize: Signed integer of the same size as a pointer

Data structures

  • Dynamic array: A dynamic array that can grow and shrink in size.
  • Hash map: A hash map that uses murmur3, open addressing (double hashing) and tombstone deletion.
  • Priority queue: A priority queue that uses a binary heap, custom comparator.

Building

mkdir build
cd build
cmake ..
make

Testing

cd build
ctest

Installing

cd build
make install

Uninstalling

cd build
make uninstall