如何在不保留内存的情况下使用缓冲区[关闭]。

问题描述 投票:0回答:1

我需要玩一个3000元素的缓冲区FIFO(先进先出)。

首先,我将填满这个缓冲区,直到它满了。之后,当一个新的元素到来时,它将替换缓冲区中最旧的元素。我只想在每次新元素到来时计算缓冲区的总和。

有谁知道如何在不将缓冲区保留在内存中的情况下完成这个任务?

有谁知道如何在不保留缓冲区的情况下完成这个任务?

c buffer fifo
1个回答
1
投票

关联一个额外的数据,称为 sum 与缓冲区。使类型的 sum 大到足以容纳缓冲区中元素的最大可能总和。当缓冲区初始化为空的状态时,在缓冲区中设置 sum 为零。当添加一个新元素 x 到缓冲区。

  • 如果缓冲区没有满,就添加 xsum.
  • 如果缓冲区满了,则减去 sum 该元素 y 缓冲区中删除的内容,然后再添加 xsum.

那么 sum 将始终包含当前缓冲区中元素的总和。

© www.soinside.com 2019 - 2024. All rights reserved.