3

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

(另外,为了澄清,这里的“multimap”标签注释说“一种类似于地图但允许重复键的结构。”我对此有点困惑,因为这不是我熟悉的多地图容器。我需要的是“类似于地图的结构,但允许每个(唯一)键有多个值。”换句话说,multimap<x, y> = map<x, list<y>>。)

4

1 回答 1

4

虽然不是直接的多图库,但 uthash在 C 中实现了一个简单的关联数组,并且只是一个头文件,因此它具有相当的可移植性和低环境开销。

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

于 2013-04-15T18:39:23.010 回答