【问题标题】:Any library for generic datatypes in C? [closed]C中的任何通用数据类型库? [关闭]
【发布时间】:2009-03-16 08:42:03
【问题描述】:

我正在尝试用 C(非 c++)编写一个 2d 游戏引擎。有哪些好的库具有我可能需要的通用数据类型 - 例如队列、树、地图、列表等?

【问题讨论】:

标签: c data-structures


【解决方案1】:

看看GLib - 它有树、哈希图、链表和队列。

Wikipedia article.

【讨论】:

  • 根据维基百科 - 是的,跨平台,虽然没有列出平台。
  • 这是个好主意。但是 glib 还有很多我不需要的东西。是否有只有数据类型的 glib 精简版。
  • 如果是静态库,只有相关的目标文件会与你的二进制文件链接。无论如何,我想您可以推出自己的版本以仅包含您需要的目标文件。
  • 五个,如果这是一个词。用于 Win32 的 glib 是一小部分 DLL:s,用于主要组件(“核心”、GObject、GIO、GModule、GThread)。总大小约为 1.8 MB。
  • 根据我的经验,在 OS X 上将 glib 构建为动态库以便我可以在我的应用程序中分发它是一件痛苦的事——尤其是找到所有依赖项并让它们编译。因此,虽然 glib 在理论上是跨平台的,但要让它在其他平台上运行还需要做很多工作。
【解决方案2】:

如果您使用的是 Mac,您将在 core foundations framework 中获得所有可用的基本数据结构。

【讨论】:

  • 我一直在寻找更跨平台的解决方案。
  • Core Foundation 也可以在 Windows 上使用,我猜也可以在 Linux 上使用...
【解决方案3】:

如果你不想使用像 GLib 这样的重量级库来使用数据结构,可以考虑我的轻量级版本dstruct,它很大程度上基于Learn C the Hard Way 中生成的代码Zed Shaw。它目前的特点是:

  • 动态数组
  • 双向链表
  • 哈希图
  • 二叉搜索树

【讨论】:

    【解决方案4】:

    您可以尝试#awesome-c 列表中提到的任何libraries

    这里列出的大多数库的酷之处在于,它们中的大多数仍在积极维护中,因此如果您决定专业使用它们,您将不会继承死库。

    您可以使用的另一个#awesome-c 列表是here

    【讨论】:

      【解决方案5】:

      不确定这个答案是否是您所追求的,但有关该主题的有用阅读是Sedgewick's "Algorithms in C"

      HTH

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-12
        相关资源
        最近更新 更多