Search code examples
cdata-structures

dictionary/map/key-value pairs data structure in C


How does one construct and access a set of key-value pairs in C? To use a silly simple example, let's say I want to create a table which translates between an integer and its square root.

If I were writing javascript, I could just do this:

var squareRoots = {
   4: 2,
   9: 3,
   16: 4,
   25: 5
}

and then access them like:

var squareRootOf25 = squareRoots[5]

How do I do this in C? What if I want to use one type of enum as the key and another type of enum as the value?


Solution

  • You could consider hash implementation in C language to achieve this. For basics of hash refer to Wikipedia. Refer to this question for more details and links.

    This link gives good overview and implementation details.