Fifo:访问其中的所有元素

时间:2015-05-12 14:45:47

标签: store fifo eye-tracking

我的问题非常简单,我正在使用眼动追踪装置,它每隔约30ms发送一次凝视位置。因此,每30ms更新一个变量id。 我想使用smoothedCoordinates的最后一个X(例如10个)值来确定用户正在查看的屏幕上的区域。

要做到这一点,我必须将smoothedCoordinates的这些值存储在容器中并对其进行处理以确定区域(通过获取这些X值的xmin,xmax,ymin,ymax)

我考虑过使用FIFO,每次更新变量时,我都会将值推到fifo的前面并弹出后面的一个,在这种情况下,我的FIFO总是大小相同。

但是有可能直接加入FIFO的所有元素,而不是弹出它们吗? 我搜索了互联网,看起来它只能加入第一个元素和最后一个元素?

如果使用FIFO无法做到这一点,是否还有另一个能满足我需求的容器?

1 个答案:

答案 0 :(得分:1)

您可以使用标准数组并为其提供类似以下功能的FIFO

char array[20];

// prepend the array and cut off the last value
for (int i = 19 ; i >= 0 ; i--)
{
    // ignore the last element, so it gets overwritten
    if (i != 19) array[i+1] = array[i];
}
// add the new value to the array at the now available 1st index
array[0] = firstElement[0];