【问题标题】:What is the best way to manage a queue of structs in C?在 C 中管理结构队列的最佳方法是什么?
【发布时间】:2011-07-28 20:16:22
【问题描述】:

我需要保留一系列结构(音频数据),但由于内存限制,我只能保留有限的数量。我认为最好的方法是排队。如果我是根据我对大学课程的模糊记忆来做这件事,我会创建一个带有指针的链表。我会将新项目推入队列并弹出旧项目并释放内存。

是否有一个我应该使用的 C 库来管理这个队列,这样我就不必重新发明轮子?

【问题讨论】:

  • 我质疑为此使用队列。如果您的队列包含三个项目怎么办?您加载声音 A、B 和 C。现在您再使用 A 3 次。 A 是最常用的,也是最近使用的。但是现在你加载声音 D。这会将 A 推出队列。这是你想要的行为吗? (或者我不理解这个问题?)
  • @Marvo:如果你的替换策略是 FIFO/LIFO 的话,链表是可以的。
  • 这是一个先进先出队列。我将用第一组音频样本填充它,因为它在播放音频时需要更多音频,我将删除已通过的音频并添加更多音频。

标签: c memory-management queue


【解决方案1】:

GLib 有一个用 C 实现的数据结构的良好且有据可查的集合,看看吧。

【讨论】:

    【解决方案2】:

    如果你可以使用 C++,你的标准库中有 std::list。

    【讨论】:

      【解决方案3】:

      听起来你描述的是cache,而不是queue

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-11-17
        • 2023-03-21
        • 2010-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-05
        相关资源
        最近更新 更多