Container Class / Library for C [closed]

I just came across SGLIB while looking for a C implementation of a map/dictionary container. Unfortunately, no map but it seems to include the containers you asked about. I have no idea how good it is.

http://sglib.sourceforge.net.


Sglib is an excellent generic data structures library. The library currently provides generic implementation for:

  • sorting arrays
  • linked lists
  • sorted linked lists
  • double linked lists
  • red-black trees
  • hashed containers

It's very fast. Faster that glib. It's inspired by the Standard Template Library. Download here

Another solution is Attractive Chaos sotware. C macro library:
kbtree.h: efficient B-tree library in C.
khash.h: fast and light-weighted hash table library in C.
kvec.h: simple vector container in C.

Kulesh Shanmugasundaram presents the generic Linux Kernel Linked List and a generic hash table based in the Linux Kernel Linked List.

Sglib and Attractive Chaos sotware and Linux Kernel Linked List are C macro libraries. Using void* to implement generic containers in C may be inefficient. C macros mimic C++ templates and are as efficient as a C++ template.


Chuck Falconer has a decent hash library written in C that includes a C++ interface, click on hashlib.zip on the webpage to download.

Ben Pfaff has very nice and extremely well-documented binary and balanced tree library, GNU libavl, that implements most major tree structures including binary search trees, AVL trees, red-black trees and threaded versions of each.

libavl is licensed under the LGPL (as of version 2.0.3), hashlib is GPL.

I'm not sure what you are looking for as far as arrays and linked lists go as the former is supported directly by the language and the latter is generally trivial enough to implement without warranting a library.


How about ccl? This is a container library for C. Maybe it's best fit for you. You can see https://code.google.com/p/ccl/. Enjoy it.