多键对一值数据结构(C)

多键对一值数据结构(C),c,data-structures,standard-library,C,Data Structures,Standard Library,我希望能够以一种动态、内存高效的方式使用相应的整数或字符检索地址。我在标准图书馆工作。有哪些可能的方法可以做到这一点?我想知道,仅仅维持两个独立结构(可能是树)的额外开销是否值得 如果整数的字符串版本与字符键不重叠,则可以使用单个结构。至于选择的数据结构是否值得,这取决于您的应用程序——散列最快,但会消耗更多内存;树的速度较慢,但内存较紧。我唯一的问题是如何排序。我需要能够按任意一个进行搜索,例如,如果它是按整数排序的,似乎我将使用该字符进行暴力搜索。@Erytraios:是的,我的单一结构建议

我希望能够以一种动态、内存高效的方式使用相应的整数或字符检索地址。我在标准图书馆工作。有哪些可能的方法可以做到这一点?我想知道,仅仅维持两个独立结构(可能是树)的额外开销是否值得

如果整数的字符串版本与字符键不重叠,则可以使用单个结构。至于选择的数据结构是否值得,这取决于您的应用程序——散列最快,但会消耗更多内存;树的速度较慢,但内存较紧。

我唯一的问题是如何排序。我需要能够按任意一个进行搜索,例如,如果它是按整数排序的,似乎我将使用该字符进行暴力搜索。@Erytraios:是的,我的单一结构建议只有在使用哈希表时才有用——如果查找和存储是关键操作,生成一个有序的列表是不必要的。我不能用标准库来做这件事,对吗?对,C标准库中没有哈希表。对不起,我不知道。整数和字符键有多长?如果它们足够短,您可以使用它们的ASCII值作为数组索引。这可能有用!因为我不能保证有一组连续的整数,有没有办法在C语言中优化稀疏数组?