我必须从一个数组中为类创建一个循环缓冲区,我不能完全理解这个概念是如何实现的。我知道有些索引来回反复但我真的不明白这是如何实现的。你如何将尾部或头部分配给数组的元素,或者将它们两种方式编入索引?任何建议,代码或解释都会非常有用。
答案 0 :(得分:1)
循环缓冲区基本上只是一个数组和两个整数,用于跟踪您认为是" tail"的位置。和#34;头"。
空缓冲区以" tail"开始。和#34;头"在同一个索引(0
和任何索引一样好。)
当你添加到缓冲区时,你插入" tail"点添加,然后将尾部移动到下一个位置。它得到"循环"因为当"尾巴"从数组的末尾开始,它跳回到它的开头(索引0)。
同样,您可以通过查看和调整相应位置从头部或尾部移除缓冲区。
答案 1 :(得分:0)
通过将结构的tail
连接到head
,您可以制作圆形内容。在数组中,这可以通过多种不同的方式完成(迭代器,自定义类/处理程序等),但它们的共同之处是next
之后的tail
元素是{{ 1}}
这是一个使用head
运算符处理尾部连接的非常简单的示例:
%
此循环将输出: 0 3 五 0 3 五 0 3 5 ......进行100次迭代