恭喜,你发布的帖子
发布于 2024-04-18 21:27:06
3楼
实现窗口值变小时直接使用新窗口值,可以分3种情况讨论:
1、尾指针大于新窗口值指向的最后位置
那么用缓存区里最新的值覆盖向前覆盖
FOR #tempK := 1 TO #windowSize - 1 DO
#statBuffer[#tempK] := #statBuffer[#statActualWindowSize - #windowSize + #tempK];
END_FOR;
2、尾指针小于新窗口值指向的最后位置,但存满过
那么原则上也是用缓存区里最新的值覆盖向前覆盖,因为存在翻转的情况,因此得借助临时存储区
3、尾指针小于新窗口值指向的最后位置,但没存满过
那么应该等尾指针过了新窗口值指向的最后位置,再执行用缓存区里最新的值覆盖向前覆盖
请填写推广理由:
分享
只看
楼主