【问题标题】:Is there a library for C that provides priority queues? [closed]是否有提供优先级队列的 C 库? [关闭]
【发布时间】:2011-12-17 12:50:13
【问题描述】:

是否有提供优先级队列的 C 库? 我对通常安装在 Linux 机器上的开源库感兴趣,类似于 glib,它提供了一些数据结构。

【问题讨论】:

    标签: c linux priority-queue


    【解决方案1】:

    一些随机链接:

    编辑:

    一般来说,涉及 Linux 内核Linux 系统编程 的书籍包含与队列及其实现细节相关的有价值的材料。

    【讨论】:

    • 这些似乎都没有在 Debian repo 中可用,因此不太通用。
    • 如果您对linux中常用的一些队列数据结构感兴趣,我建议您搜索另一个有希望的方向:深入研究book处理linux内核 .你会在那里找到很多。我不确定这是否是一个令人满意的答案,但如果您需要参考,您可以通知我。
    • 问题在于,当它是自制的时候,它会添加更多需要维护的代码,或者当它是 repo 之外的第三方库时,它会添加更多的代码来维护。此外,每次我想在某个程序中使用它时,我都需要粘贴代码/非 repo 库。如果没有更好的办法,我将封装 STL 实现以在 C 中使用。
    • 我认为编辑可能会改善您的问题。越专注,您获得的宝贵反馈就越多。
    • 是的,他们都在那里!但是人们必须深入挖掘 cmets 以获取更多相关输入:例如。看来您在 Debian 下工作,并希望有人将您指向存储库中可用的包,包括优先级队列的实现。
    【解决方案2】:

    您可以只使用消息队列,具体取决于队列需要多大。

    使用 posix 消息队列(请参阅man mq_overview),您可以设置消息优先级。

    或者,使用 System V 消息队列(msgget()msgsnd()msgrcv()),您可以使用消息类型作为优先级,并尝试按从最高优先级到最低优先级的顺序检索每个优先级(类型)。

    在任何一种情况下,它们都是标准 IPC,并且应该可以在任何正常的 Linux 发行版上使用。

    【讨论】:

      猜你喜欢
      • 2022-01-18
      • 1970-01-01
      • 2016-04-13
      • 1970-01-01
      • 2015-12-05
      • 2017-06-13
      • 1970-01-01
      • 2011-12-20
      • 1970-01-01
      相关资源
      最近更新 更多