我正在尝试将一些Delphi代码移植到C库中,但是其中央结构是基于多图的。没有任何类型的泛型,也没有对动态数组的语言级别的支持,用C构建我自己的多重映射会非常痛苦。但是我认为有人已经在某个地方写过了。在哪里可以找到C的良好多图实现?

(此外,为澄清起见,此处的“ multimap”标记注释指出“结构类似于地图,但允许重复的键。”我对此感到有些困惑,因为这不是我所熟悉的multimap容器。我需要的是“一种类似于映射的结构,但是每个(唯一)键允许多个值。”换句话说,multimap<x, y> = map<x, list<y>>。)

最佳答案

尽管uthash不是直接使用多图库,但simple example在C语言中实现了一个简单的关联数组,并且只是一个头文件,因此它具有很好的可移植性,并且环境开销较低。

使用uthash,您可以简单地创建一个多级关联数组,将子关联数组视为集合。 uthash文档提供了用于创建和使用多级关联数组。

09-15 11:48