2011-12-23 62 views
1

我想写在c中的东西,将两个数组相互关联,但我是c语言的新手,我不想从错误的路径开始......我需要什么是类似python的字典和我正在考虑使用结构。这是要走的路还是有我缺少的东西?类似dict的东西在c

感谢;)

+0

你能更具体吗? '关联两个数组'意味着什么。你在想如何使用结构? – 2011-12-23 08:54:24

+0

对不起,我想我的结构中有两个等长的数组(例如键和值),并且通过查找我想要的键的索引,我会知道该值的索引... – Psyclops 2011-12-23 08:59:16

+1

如果它足以让您有O(N)查找成本,那么你有一个很好的解决方案。您可以对元素进行排序以将其改进为O(logN)。你可能会发现不需要实现一个散列表(它更高效,但更难编码)。 – 2011-12-23 09:02:16

回答

3

看看这个link。 这里解释了如何在c中创建一个哈希表。

2

我认为你正在寻找一个HashTable。我只是googled for an example,但环顾一下,我确信你会找到一个满足你的需求的实现示例。

2

蟒Python dict和C struct不同的野兽。

A struct可以被认为是将相关变量分组在一起的一种方式,以便它们可以作为单个单元传递。

A dict是从键到值的映射,其中键集在编译时通常是不知道的。如果你需要在C中做类似的事情,最好的办法是使用标准数据结构库。这些已在过去进行过讨论:Are there any open source C libraries with common data structures?

有几种标准数据结构可以使您能够将键映射到值。 A hash table是一个合理的默认选择。

1

在SO中搜索标签hastable或文本implementation in C,您会发现一些示例以及值得一读的有趣问题和解决方案。

相关问题