我的问题非常简单,我正在使用眼动追踪装置,它每隔约30ms发送一次凝视位置。因此,每30ms更新一个变量id
。
我想使用smoothedCoordinates
的最后一个X(例如10个)值来确定用户正在查看的屏幕上的区域。
要做到这一点,我必须将smoothedCoordinates
的这些值存储在容器中并对其进行处理以确定区域(通过获取这些X值的xmin,xmax,ymin,ymax)
我考虑过使用FIFO,每次更新变量时,我都会将值推到fifo的前面并弹出后面的一个,在这种情况下,我的FIFO总是大小相同。
但是有可能直接加入FIFO的所有元素,而不是弹出它们吗? 我搜索了互联网,看起来它只能加入第一个元素和最后一个元素?
如果使用FIFO无法做到这一点,是否还有另一个能满足我需求的容器?
答案 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];