【问题标题】:How to represent a Python-like dictionary in C如何在 C 中表示类似 Python 的字典
【发布时间】:2011-03-17 05:46:41
【问题描述】:

在 Python 中很容易:

x = {}
x['USD'] = "Dollars"
x['CLP'] = "Pesos"

y = {'lat': 23.678900, 'lng': 121.451928, 'name': "Sin City"}

我认为大多数这类问题都已解决,那么我在哪里可以获得有关 C 语言字典的信息?我不想重新发明轮子。

如何在 C 中实现字典?

【问题讨论】:

  • 您可能希望阅读有关哈希表的信息:en.wikipedia.org/wiki/Hash_table 这是一种非常重要的数据结构,了解它们的工作原理以及使用它的好处(和坏处)非常重要,并且将使您更好地了解python字典的方式和原因。

标签: c dictionary


【解决方案1】:

glibc 提供 hcreate、hsearch 和 hdestroy。

【讨论】:

    【解决方案2】:

    它们被称为哈希表或哈希映射。

    C++ 有很多标准。

    Simple hash functions

    【讨论】:

      【解决方案3】:

      here回答了你所有的问题。

      想法:使用避免冲突的哈希函数将它们用作索引。

      【讨论】:

        【解决方案4】:

        哈希表很好。如果您想坚持使用标准 C 库函数,还有 bsearch,它适用于常量查找字典,或与 qsort 结合使用的动态字典。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-11-13
          • 1970-01-01
          • 2017-10-26
          • 2016-05-07
          • 1970-01-01
          • 1970-01-01
          • 2020-10-23
          • 1970-01-01
          相关资源
          最近更新 更多