【发布时间】:2018-03-19 15:22:00
【问题描述】:
我正在编写的程序中有源源不断的数据流。我想要一个固定大小的缓冲区数组,它只存储该流的 T 最近的观察结果。但是,对我来说,如何以有效的方式实现这一点并不明显。
到目前为止,我所做的是首先分配长度为 T 的缓冲区,并将传入的观察结果从顶部按连续顺序排列:data_0->index 0, data_1->index 1…data_T->index T.
在缓冲区满之前可以正常工作。但是当观察data_T+1 到达时,index 0 需要从缓冲区中删除,并且所有 T-1 行都需要在数组/矩阵中上移一步为了将最新的数据点放在 index T。
当缓冲区很大并且需要将数十万个元素一直向上推到一行时,这似乎是一种非常低效的方法。 这通常是如何解决的?
【问题讨论】:
标签: arrays memory-management stream buffer